c# Socket如何异步分批发送和接收数据包?

2024-11-28 16:02:49
推荐回答(2个)
回答1:

如果在同步的基础上去改,改动会比较大,因为同步的SOCKET通讯几乎不需要什么协议,而异步一般是需要一个简单的协议,并且复杂程度会高很多,因为异步本身就是不确定的。

我不太清楚你说的“处理分批发送和接收大数据包”是什么意思,我的理解就是用代码把数据一块一块的发送了然后再在目的端去重新组合,你的意思是一个SOCKET同时发消息传文件等等?(长连接,不可取,协议会变得非常复杂)我印象中C#是有异步的SOCKET可以直接用的,十分简单,可能需要改动一些结构。

不知道是否有用代码验证过发送的包是否出错(一般是需要的,在包的前面或者后面附一些BIT就足够了),如果想尽可能简单的修改,就还是多线程仍然采用同步的方式好了,SOCKET专用只维持短连接,监听的监听,发送的发送,接收的接收,处理的处理。如果需要提高程序的效率,搜索一下重叠IO,这个是高效率IO的不二选择。希望我没理解错

回答2:

web的
Reponse.Write("");
winform
(MessageBox.Show("消息", "消息", MessageBoxButtons.YesNo) == DialogResult.Yes)

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela