A Windows Forms application would be
good, but since you're going to allow multiple users to communicate through the same hub (server), ASP.NET would be
better. If you do not want to use a website, with a layout and other formalities,
ASP.NET Web API[
^] would be
best for this type of application.
ASP.NET Web API would allow you to communicate with different clients connecting through different locations and would allow you to create a central hub (server) that would provide responses to the requests made through clients. Good thing about this is that is can run in a simple Console application also. This is known as "
Self-Host"-ing. All you need is a software application that can run over .NET framework (Console would do the thing, so would your favorite Windows Forms application). ASP.NET team has a great kick-start article for you already read at:
http://www.asp.net/web-api/overview/older-versions/self-host-a-web-api[
^]. The code is given in C#, you can easily convert it to VB.NET through Telerik Converter. So the code would be
Dim config = New HttpSelfHostConfiguration("http://localhost:8080")
config.Routes.MapHttpRoute("API Default", "api/{controller}/{id}", New With { _
Key .id = RouteParameter.[Optional] _
})
Using server As New HttpSelfHostServer(config)
server.OpenAsync().Wait()
Console.WriteLine("Press Enter to quit.")
Console.ReadLine()
End Using
All of the requests would be handled here. Responses can be made through Web API, good thing here is that get a chance to stream down the response in JSON format. Which would be helpful for you to cut-short network traffic that is usually a problem in SOAP-based frameworks such as Web Services.
Also,
TcpClient
[
^] and
SslStream
[
^] would cause a havoc for you since you are just a beginner.
Just don't! Instead try something easier for now. If you really do want to go down in networking and want to use the sockets and something like that. Give a quick (but thorough) read to
System.Net
namespace on MSDN[
^].