Hello,
I was wondering how to let more then one client connect witht he server using TCP.
Here is what I have right now.
Server
Code:
Imports System.Net.Sockets
Imports System.Text
Module Module1
Private Const port As Integer = 3724
Private Const MAX_SLOTS As Integer = 20
Sub Main()
Dim tcpServer As New TcpListener(port)
Dim stream As NetworkStream
tcpServer.Start()
Console.WriteLine("Server started.")
Console.WriteLine("Waiting for connections...")
Dim tcpUser As TcpClient
Try
tcpUser = tcpServer.AcceptTcpClient()
stream = tcpUser.GetStream()
Console.WriteLine("Connection accepted.")
Dim bytesText(tcpUser.ReceiveBufferSize) As Byte
Dim strText As String
Dim i As Integer = 0
While True
stream.Read(bytesText, 0, tcpUser.ReceiveBufferSize)
strText = Encoding.ASCII.GetString(bytesText)
Console.WriteLine(strText)
strText = Nothing
i = i + 1
Console.SetCursorPosition(0, 3 + i)
End While
tcpUser.Close()
tcpServer.Stop()
Catch ex As Exception
Console.WriteLine("Fail to recieve from client. " & ex.Message)
Console.ReadLine()
Main()
End Try
End Sub
End Module
client
Code:
Imports System.Net.Sockets
Imports System.Text
Public Class Form1
Private tcpUser As New TcpClient
Private stream As NetworkStream
Private bytesText As [Byte]()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
tcpUser.Connect("127.0.0.1", 3724)
tcpUser.GetStream()
stream = tcpUser.GetStream()
Catch ex As Exception
MessageBox.Show("Unable to connect. " & ex.Message, "Error")
End Try
End Sub
Private Sub cmdSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSend.Click
bytesText = Encoding.ASCII.GetBytes(txtMessage.Text)
stream.Write(bytesText, 0, bytesText.Length)
End Sub
End Class