C#中用TcpClient和TcpListener发送接收问题
在控制台中可以用循环查询的方法知道有没有数据可供接收,但在窗体程序下如何得知有数据到来了呢,难不成用一个定时器定时检查(效率太低了,我认为不好)?望高手指点!还有其他的好...
在控制台中可以用循环查询的方法知道有没有数据可供接收,但在窗体程序下如何得知有数据到来了呢,难不成用一个定时器定时检查(效率太低了,我认为不好)?望高手指点!
还有其他的好方法没有呢,比如基于事件触发的方法? 展开
还有其他的好方法没有呢,比如基于事件触发的方法? 展开
2个回答
展开全部
用个线程来启动下面函数
private void listen()
{
while(true)
{
string in_arg;
byte[] byteW = null;
TcpClient client = listener.AcceptTcpClient();
NetworkStream ns = client.GetStream();
byte[] byteR = new byte[1024];
int bytesRead = ns.Read(byteR, 0, byteR.Length);
if (bytesRead == 0) return;
in_arg = Encoding.Default.GetString(byteR, 0, bytesRead);
//你想做的工作
}
}
private void listen()
{
while(true)
{
string in_arg;
byte[] byteW = null;
TcpClient client = listener.AcceptTcpClient();
NetworkStream ns = client.GetStream();
byte[] byteR = new byte[1024];
int bytesRead = ns.Read(byteR, 0, byteR.Length);
if (bytesRead == 0) return;
in_arg = Encoding.Default.GetString(byteR, 0, bytesRead);
//你想做的工作
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询