我正在研究c# winforms
。我的rich textbox
中有一个main form
。现在,我正在使用类Handleclient
,其中正在使用要在其中调用函数的线程。在该函数中,我创建了我的主要形式的新对象。我的代码在下面
流量
首先,我通过用户传递端口号,然后单击按钮,我将收听它。为此,我有一个名为Server
**Main Form**
port = Convert.ToInt32(tbPort.Text);
Server server = new Server(port);
if (btnListen.Text == "Listen")
{
btnListen.Text = "Close";
server.start();
}
上面的对象已创建,并且调用了start方法
服务器类
public Server(int port)
{
this.port = port;
}
public void start()
{
listner = new TcpListener(new IPEndPoint(IPAddress.Any,port));
listner.Start();
listnerthread = new Thread(new ThreadStart(Listner));
listnerthread.Start();
}
public void Listner()
{
while (true)
{
try
{
TcpClient C = listner.acceptTcpClient();
Handleclient client = new Handleclient();
client.startClient(C);
}
catch (Exception ex)
{
Console.WriteLine("Error in listner");
Console.WriteLine(ex.Message);
}
}
}
以上方法正在监听端口。另外,我的句柄客户端函数也被调用。我试图在其中将输入的字符串显示在富文本框中
处理客户端
// Buffer to store the response bytes.
byte[] data = new byte[9999];
Thread comThread;
public void startClient(TcpClient inClientsocket)
{
this.clientsocket = inClientsocket;
comThread = new Thread(doChat);
comThread.Start();
}
private void doChat()
{
MainForm form = new MainForm();
while ((true))
{
try
{
// Read the first batch of the TcpServer response bytes.
NetworkStream stream = clientsocket.GetStream();
stream.ReadTimeout = 1000;
int bytes = stream.Read(data,data.Length);
responseData = BitConverter.ToString(data,bytes);
form.rtBRecievedData.Text = responseData;
stream.Close();
clientsocket.Close();
}
catch (Exception ex)
{
Console.WriteLine(" >> " + ex.ToString());
comThread.Abort();
}
}
}
responseData
的值为01-01-01-01-00-01-00-19-F4-09-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-00-01-00-01-00-01-00-15-AA-10-00-00-00-00-30-30-32-39-39-38-30-30-35-35-36-31-12-00-12
现在主要的问题是此字符串未显示在rich text box
上。我可能会缺少我无法理解的内容。
任何帮助将不胜感激。