none
如何解决Socket异步传数据中的数据不完整 RRS feed

  • 问题

  • 采用socket和IAsyncResult进行异步传数据,但在传数据过程中 每次都是一个缓存一个缓存的传数据,我如何确定我的数据传递完成,客户端是通过多线程进行频繁的send数据  请各位高手指点!   谢谢
    2010年5月24日 14:57

答案

  •  

    可以试试通过协议来解决。

    比如说你每次发送的时候都先把发送的字节大小给发送到另一端,然后再发送内容,然后再等待接收端的返回信息以表示是否接收完整,否则重新发送。


    Microsoft Online Community Support
    • 已建议为答案 mazhou 2010年5月26日 9:09
    • 已标记为答案 Jing0Moderator 2010年5月28日 3:13
    2010年5月26日 3:46
  • 一,TCP 协议是基于流的协议,发送封包需要自行定义边界或者大小。

    二,发送之前先切片,贴上标志。如果有必要还可以在发送之前发个描述封包,告诉服务端究竟是如何切片的。

    • 已建议为答案 mazhou 2010年5月26日 9:09
    • 已标记为答案 Jing0Moderator 2010年5月28日 3:13
    2010年5月26日 5:32

全部回复

  •  

    可以试试通过协议来解决。

    比如说你每次发送的时候都先把发送的字节大小给发送到另一端,然后再发送内容,然后再等待接收端的返回信息以表示是否接收完整,否则重新发送。


    Microsoft Online Community Support
    • 已建议为答案 mazhou 2010年5月26日 9:09
    • 已标记为答案 Jing0Moderator 2010年5月28日 3:13
    2010年5月26日 3:46
  • 一,TCP 协议是基于流的协议,发送封包需要自行定义边界或者大小。

    二,发送之前先切片,贴上标志。如果有必要还可以在发送之前发个描述封包,告诉服务端究竟是如何切片的。

    • 已建议为答案 mazhou 2010年5月26日 9:09
    • 已标记为答案 Jing0Moderator 2010年5月28日 3:13
    2010年5月26日 5:32