日期:2014-05-18  浏览次数:21461 次

C# socket发送大量数据要怎么处理?
我写了一个服务,用socket侦听,接收客户端的HTTP请求,然后响应,将数据send回客户端
如果数据量很大的话需要做什么处理?各位能否给出个实例代码让小弟参考一下?

------解决方案--------------------
服务端用同步发送和接收会不会性能太低了,如果并发比较高的情况下,会影响用户体验的。
个人以为,服务端还是用多线程+异步的好。
------解决方案--------------------
异步socket的使用示例 http://msdn.microsoft.com/en-us/library/w89fhyex.aspx
------解决方案--------------------
探讨

在数据量很大,频繁发送的情况下我要怎么才能保证数据发送后,客户端接收数据的完整性呢?

------解决方案--------------------
粘包的分解代码网上有很多,但是要完全达到你的要求的话,估计还是自己写代码。
即便你用TCP,也不能保证数据100%绝对完整,因为网络是开放的。当然如果安全性要求高的话,可以考虑采用TcpChannel()类,但是这个类要求Socket编程经验更加高,目前偶的程序还是基于Socket+Tcp。
------解决方案--------------------
如果频繁发送要考虑断线的情况,可以设计一个断线重连