Jump to content
Xtreme .Net Talk

Recommended Posts

Posted

Hey i got a simple tcp server/client application.

and i have the listening on the port 6666 in a thread.

it keeps listening till the client connects and then it closes the thread.

but i want it to keep the thread running so that another client can connect.

 

   Const portNumber As Integer = 6666
   Dim tcpListener As New tcpListener(portNumber)
   Dim listenThread As System.Threading.Thread

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       ' Must listen on correct port- must be same as port client wants to connect on.
       tcpListener.Start()
       listenThread = New System.Threading.Thread(AddressOf doListen)
       listenThread.IsBackground = True
       listenThread.Start()
       Debug.WriteLine("Waiting for connection...")
   End Sub

   Public Sub doListen()
       'Accept the pending client connection and return 
       'a TcpClient initialized for communication. 
       Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
       Debug.WriteLine("Connection accepted.")
       ' Get the stream
       Dim networkStream As NetworkStream = tcpClient.GetStream()
       ' Read the stream into a byte array
       Dim bytes(tcpClient.ReceiveBufferSize) As Byte
       networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
       ' Return the data received from the client to the console.
       Dim clientdata As String = Encoding.ASCII.GetString(bytes)
       Console.WriteLine(("Client sent: " + clientdata))
       Dim responseString As String = "Connected to server."
       Dim sendBytes As [byte]() = Encoding.ASCII.GetBytes(responseString)
       networkStream.Write(sendBytes, 0, sendBytes.Length)
       Console.WriteLine(("Message Sent /> : " + responseString))
       'Any communication with the remote client using the TcpClient can go here.
       'Close TcpListener and TcpClient.
       tcpClient.Close()
       Console.WriteLine("exit")
   End Sub

thats my server code

 

this is my client code

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Try
           Dim tcpClient As New System.Net.Sockets.TcpClient()
           tcpClient.Connect("127.0.0.1", 6666)
           Dim networkStream As NetworkStream = tcpClient.GetStream()
           If networkStream.CanWrite And networkStream.CanRead Then
               ' Do a simple write.
               Dim sendBytes As [byte]() = Encoding.ASCII.GetBytes("Is anybody there")
               networkStream.Write(sendBytes, 0, sendBytes.Length)
               ' Read the NetworkStream into a byte buffer.
               Dim bytes(tcpClient.ReceiveBufferSize) As Byte
               networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
               ' Output the data received from the host to the console.
               Dim returndata As String = Encoding.ASCII.GetString(bytes)
               Console.WriteLine(("Host returned: " + returndata))
           Else
               If Not networkStream.CanRead Then
                   Console.WriteLine("cannot not write data to this stream")
                   tcpClient.Close()
               Else
                   If Not networkStream.CanWrite Then
                       Console.WriteLine("cannot read data from this stream")
                       tcpClient.Close()
                   End If
               End If
           End If
       Catch d As Exception
           MessageBox.Show(d.ToString)
       End Try
   End Sub

 

my server debug:

Waiting for connection...

Connection accepted.

Client sent: Is anybody there

The thread '<No Name>' (0x105c) has exited with code 0 (0x0).

 

Greetz

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...