【发布时间】:2012-12-05 19:06:22
【问题描述】:
我写了一个简单的套接字发送特定的请求到互联网服务器并接收响应 但是当请求发送和套接字进入接收模式返回值结果时我有问题 不完整,例如仅接收 25000 字节的 1075 字节。
Socket skt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
skt.Connect(hdr.Host, 80);
byte[] req_as_bytes = Encoding.UTF8.GetBytes(RequestParam);
SentLength = skt.Send(req_as_bytes);
skt.Send(Data, SocketFlags.None);
ReturnLength = skt.Receive(Data);
skt.Shutdown(SocketShutdown.Both);
skt.Close();
但是当我在 skt.recive() 之前休眠时,数据会像这段代码一样从服务器接收
Socket skt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
skt.Connect(hdr.Host, 80);
byte[] req_as_bytes = Encoding.UTF8.GetBytes(RequestParam);
SentLength = skt.Send(req_as_bytes);
skt.Send(Data, SocketFlags.None);
System.Threading.Thread.Sleep(4000);
ReturnLength = skt.Receive(Data);
skt.Shutdown(SocketShutdown.Both);
skt.Close();
解决这个问题的最佳方案是什么
【问题讨论】: