日期:2014-05-20  浏览次数:20747 次

面向连接tcp下socket异步通信问题寻求帮助!!
在.net开发应用中,出现了如下问题,寻求哪位高手能帮助下。

服务器端客户端采用面向连接的tcp异步socket进行通信。UI层使用datagrid进行记录展示。客户端启动应用后,通过翻页按钮
每次能正常从服务器端正确取回数据,不断的重复点翻页按钮偶尔会发生异常 后台信息为:在分析完成之前就遇到流结尾。服务器端我传输的数据是进过把对象序列化后进行传输的。客户端在进行反序列化操作。

网上有贴子描述如下
这个问题是因为反序列化使用的流已经是末尾了,需要将其至于开始位置,加上代码:

 sw.Seek(0, SeekOrigin.Begin);
这个我也添加上了。但问题依然存在。


------最佳解决方案--------------------
楼主的问题 有点蛋疼 没做过 将对象序列化 成流进行传输的 等牛人吧
------其他解决方案--------------------
和那个没关系,tcp是流模式,保证能传输完整,除非网络断开。

tcp通讯的时候,一般要做一个简单的协议,也就是说多少字节是一个完整的数据,等你收完完整的数据再序列化或者反序列化,这样肯定不会出问题。

sw.Seek(0, SeekOrigin.Begin); 这句是完全没用的,网络流是不支持查找的。
------其他解决方案--------------------
http://blog.csdn.net/fengyarongaa/article/details/6631953

参考Demo