.NET下使用Socket进行TCP传输时数据发送或接收不全

.NET下使用Socket进行TCP传输时数据发送或接收不全,第1张

试下引入多线程吧.

让服务器返回一个信息, 告诉客户端可以开始传数据之后, 客户端再传, 之前服务器端开一个线程来接收数据.

你还可以检测收到的1W8数据是3W8里面的哪一部分. 这个把发送的数据和接收的数据都保存成文件, 然后用WinHex打开就能很容易查找到. 这样才知道丢的是哪部分, 然后按情况处理.

你可以看一下HTTP协议,,简单说一下,WEB服务器返回2个部分:HTTP头和HTTP体。HTTP头一般小余1024字节,如果HTTP包头含CONTENT-LENGTH,你可以按这个长度接收包体即可。如果包头含有Transfer-Encoding: chunked,则表示服务器是边处理,边返回。这个时候,你可以有2种方法接收:1、循环接收,作个超时处理,如500毫秒没数据可接收,则断开连接。2、包体的第一部分含这个发送快的大小(16禁止),你可以先接这部分,再继续接收数据。直到收到0结尾的结束符


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/541317.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-26
下一篇2023-06-26

发表评论

登录后才能评论

评论列表(0条)

    保存