我已经开始将基于控制台的TCP客户端版本转换为GUI。我承认,我对线程并不是很了解,只知道一点C#。我设法让一切都与时俱进;客户端发送另一台PC(服务器)客户端的IP,然后它可以连接回来发回数据,通常它会回复我设置的字符串:" REPLY INIT",这告诉我,我收到了来自其他PC的数据。但是,当尝试将其写入富文本框/设置带有数据的标签时,没有任何作用;它说它不是null但我似乎无法使用线程中的变量设置任何GUI元素。
public void Receive()
{
try
{
byte[] ReceiPacket = new byte[1000];
Form1.Reciever.Read(ReceiPacket, 0, ReceiPacket.Length);
Form1.Reciever.Flush();
string Command = Encoding.ASCII.GetString(ReceiPacket);
string[] CommandData = System.Text.RegularExpressions.Regex.Split(Command, ">");
try
{
string LoggingText = CommandData[1].ToString();
WriteToLog(LoggingText, "Green");
}
catch
{
}
}
catch
{
WriteToLog("Error Receiving!", "Red");
}
}
我删除了一些代码来清理它,但那是用来接收内容的线程。
(布局)
服务器会回复如下内容:string> whatever> 我使用正则表达式来区分命令(字符串)和内容(无论如何)。
答案 0 :(得分:0)
排序!
我只是放置了我想要在其中运行的内容并且它有效!
this.Invoke((MethodInvoker)delegate
{
WriteToLog("Testing", "Red");
});