有没有一种方法可以确定C#中TCPIP套接字的接收缓冲区大小。我正在向服务器发送一条消息,并期望在不确定接收缓冲区大小的情况下做出响应。套接字接收缓冲区大小
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.125.125.226"),20060);
Socket server = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
server.Connect(ipep);
String OutStr= "49|50|48|48|224|48|129|1|0|0|128|0|0|0|0|0|4|0|0|32|49|50";
byte[] temp = OutStr.Split('|').Select(s => byte.Parse(s)).ToArray();
int byteCount = server.Send(temp);
byte[] bytes = new byte[255];
int res=0;
res = server.Receive(bytes);
return Encoding.UTF8.GetString(bytes);
由于没有终止字符,有没有什么方法可以循环直到接收字节结束。 – Kanishka 2011-01-05 05:09:46
@Kanishka通常使用多个系统页面大小来获得最佳性能。 http://msdn.microsoft.com/en-us/library/ms724958(v=vs.85).aspx – 2011-01-05 08:14:09
@Kanishka:是的,看看这里http://msdn.microsoft.com/en-us/library /8s4y8aff.aspx。它概述了如何使用Socket.Receive来确定是否有更多数据等待在'Remarks'节中处理。 – sashang 2011-01-05 08:47:13