问题描述
我创建了与TCP服务器进行通信的类,
public class Tcp_client_server_communication
{
private static TcpClient client;
private static String response = String.Empty;
public void Initialize(string ip,int port)
{
client = new TcpClient(ip,port);
}
public string BeginRead()
{
var buffer = new byte[16];
var ns = client.GetStream();
ns.BeginRead(buffer,buffer.Length,EndRead,buffer);
}
public void EndRead(IAsyncResult result)
{
var buffer = (byte[])result.AsyncState;
var ns = client.GetStream();
var bytesAvalible = ns.EndRead(result);
MessageBox.Show(Encoding.ASCII.GetString(buffer));
BeginRead();
}
}
要使用这些方法,请使用:
.Initialize();
.BeginRead();
它工作正常,但我想以多行TextBox
而不是MessageBox
的形式显示来自服务器的每条消息。
我该怎么做?
解决方法
好吧,您可以创建一个List对象来保存所有传递的消息,然后将Timer设置为经常检查列表是否已添加到其中。在将消息添加到文本框中后,从列表中删除您在每个刻度上阅读的内容。
这个项目要比那时复杂一些,但这是我在中学时期从事的一个老项目:https://github.com/Taloreal/Server-Essentials