Hi, I have programmed a Threaded TcpListener Server and I'm having trouble getting my ListBox populated with information from a TcpClient. So far I have managed to use Console.Write() to store data and text, but now I want to store that same data in the frmMain. I have tried the following:
<-- Writes to Console (not what I want)
<-- Should Send "Waiting for a connection..." to the ListBox lbConsole but it doesnt? (This is what i want but it doesnt populate the listbox)
here's my code for the Server's frmMain, and MyTcpListener Class
frmMain Class:
MyTcpListener Class:
VB.NET:
Console.Write("Waiting for a connection... ")
VB.NET:
frmMain.lbConsole.Items.Add("Waiting for a connection... ")
here's my code for the Server's frmMain, and MyTcpListener Class
frmMain Class:
VB.NET:
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Public Class frmMain
Dim aThread As Thread
Public Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
aThread = New Thread(AddressOf Me.ThreadTask)
aThread.IsBackground = True
aThread.Start()
End Sub
Public Sub ThreadTask()
MyTcpListener.Main()
End Sub
End Class
MyTcpListener Class:
VB.NET:
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Public Class MyTcpListener
Public Shared Sub Main()
Dim server As TcpListener
server = Nothing
Try
' Set the TcpListener on port 13000.
Dim port As Int32 = 1337
Dim localAddr As IPAddress = IPAddress.Any
server = New TcpListener(localAddr, port)
' Start listening for client requests.
server.Start()
' Buffer for reading data
Dim bytes(1024) As Byte
Dim data As String = Nothing
' Enter the listening loop.
While True
Console.Write("Waiting for a connection... ")
' Perform a blocking call to accept requests.
' You could also user server.AcceptSocket() here.
Dim client As TcpClient = server.AcceptTcpClient()
Console.WriteLine("Connected!")
data = Nothing
' Get a stream object for reading and writing
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
' Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine("Received: {0}", data)
' Process the data sent by the client.
data = data.ToUpper()
Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
' Send back a response.
stream.Write(msg, 0, msg.Length)
Console.WriteLine("Sent: {0}", data)
i = stream.Read(bytes, 0, bytes.Length)
End While
' Shutdown and end connection
client.Close()
End While
Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
Finally
server.Stop()
End Try
Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
Console.Read()
End Sub 'Main
End Class 'MyTcpListener