中易网

C#套接字编程,用TcpClient接收服务端的套接字,那怎么给它实现一个接收信息的回调函数啊?

答案:2  悬赏:20  
解决时间 2021-02-07 13:06
C#套接字编程,用TcpClient接收服务端的套接字,那怎么给它实现一个接收信息的回调函数啊?
最佳答案
你的程序里NetworkStream 放到while外 。服务只侦听。不需要主动去连接客户端。所以不用 BeginConnect。可以异步读BeginRead
byte[] buffer=new byte[1024];
streamClient.BeginRead(buffer, 0, BufferSize, callBack, null);
回调方法:
private void OnReadComplete(IAsyncResult ar)
{
int bytesRead = 0;
try
{
lock (streamToClient)
{
bytesRead = streamToClient.EndRead(ar);
}
if (bytesRead == 0) throw new Exception("读取到0字节");
string msg = Encoding.UTF8.GetString(buffer, 0, bytesRead);
//msg为接收到的信息
}
// 再次调用BeginRead()
lock (streamToClient)
{
AsyncCallback callBack = new AsyncCallback(OnReadComplete);
streamClient.BeginRead(buffer, 0, BufferSize, callBack, null);
}
}
catch (Exception ex)
{
if (streamToClient != null)
streamClient.Dispose();
client.Close();
}
}
全部回答
客户端想服务端发送socket流 服务端获取流 然后双方通过tcp协议规则信息通信
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问弹弹堂是第七大道还是4399要好?
表达感谢恩人的诗词
沈阳站属于几等站?
医科大一附院宿舍我想知道这个在什么地方
郑州铁路局的下属单位有哪些??
有人先给你一巴掌,然后再给你一块糖,你是该
雀阴在哪里啊,我有事要去这个地方
术字的读音是怎么读
我的是福州的社保,现在想转到厦门,怎么转
永来越南特产馆怎么去啊,有知道地址的么
索尼5r人脸识别,笑脸快门,自动肖像构图怎么设
港口白庙十三乡理事会地址在哪,我要去那里办
红薯片是烤的还是炸的?
巩俊辰用韩语怎么说
简便计算243—95
推荐资讯
阿拉斯加犬那个月长得快
在哪里可以看鬼怪啊,韩剧,谢谢
平原服务区这个地址在什么地方,我要处理点事
我的戴尔笔记本装了迈克菲又装了鲁大师,冲突
如何选一家好的婚纱摄影!我在天津要照婚纱照
万达物资经销处怎么去啊,有知道地址的么
word目录里页码后面数字和省略号怎么删除
淄博地方税务局临淄分局稽查局在哪里啊,我有
邹洞村村民委员会地址有知道的么?有点事想过
为什么地瓜是甜的?
神州租车栈桥火车站店地址在哪,我要去那里办
平房区殡仪馆地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?