再次初学者问题:对我不久前提出的问题的跟进。
我试图理解这个同步套接字教程http://msdn.microsoft.com/en-us/library/6y0e13d3.aspx,特别是下面代码中的一行。
问题: 我想确保我正确理解程序流程。handler.Receive (bytes) 什么时候返回?当它“溢出”并接收到超过 1024 字节时,它是否返回并存储int bytesRec** 中接收到的字节数?**如果是这样,这听起来可能很傻,如果更多字节到达,因为它将 1024 字节存储在 *数据* 变量中并且不监听当时可能到达的更多字节,会发生什么?还是我不应该担心,让 .net 来处理?
Socket handler = listener.Accept();
data = null;
// An incoming connection needs to be processed.
while (true) {
bytes = new byte[1024];
int bytesRec = handler.Receive(bytes);
// My question is WHEN does the following line
// get to be executed
data += Encoding.ASCII.GetString(bytes,0,bytesRec);
if (data.IndexOf("<EOF>") > -1) {
break;
}
}