C#中用TcpClient和TcpListener发送接收问题

在控制台中可以用循环查询的方法知道有没有数据可供接收,但在窗体程序下如何得知有数据到来了呢,难不成用一个定时器定时检查(效率太低了,我认为不好)?望高手指点!还有其他的好... 在控制台中可以用循环查询的方法知道有没有数据可供接收,但在窗体程序下如何得知有数据到来了呢,难不成用一个定时器定时检查(效率太低了,我认为不好)?望高手指点!
还有其他的好方法没有呢,比如基于事件触发的方法?
展开
 我来答
liyangfd
2010-04-18 · TA获得超过181个赞
知道小有建树答主
回答量:232
采纳率:50%
帮助的人:93.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);
//你想做的工作

}

}
鼠王安妮
2010-04-18 · TA获得超过937个赞
知道小有建树答主
回答量:492
采纳率:0%
帮助的人:192万
展开全部
呵呵,我用的就是Timer控件...当然您也可以尝试多线程。其实实质上,多线程和Timer控件在底层机制上是差不多的~~~
高手指点哦~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式