【发布时间】:2014-05-15 08:15:46
【问题描述】:
我得到了这个 Socket.Send 代码,我的协议是 tcp。
byte[] commandBytes = Encoding.ASCII.GetBytes(command);
int iBytesSent = socket.Send(commandBytes, commandBytes.Length, SocketFlags.None);
Debug.WriteLine("SEND: " + command);
我有超过 10,000 个命令要发送,每个命令大约 100 个字符。
我在 foreach 循环中调用 Socket.Send 来处理 10,000 个命令。
我通知 Socket.Send 代码阻塞了当前线程并且需要永远完成。 (debug.WriteLine 停止打印到输出控制台。)
所以我的问题:
是否有可能是因为我发送命令太快而导致流已满?
所以它必须等到流可用并继续发送?
我还通知说有片刻 Socket.Send 阻塞代码 5-10 秒,然后继续。 但随着时间的推移,5-10 秒变成了 20-30 秒,然后就一直持续下去。
【问题讨论】:
标签: c# sockets asynchronous tcp asyncsocket