0
我有一個TCP/IP套接字並通過它與外部傳感器設備進行通信。我們使用的專有協議具有設備可以隨時向客戶端發送數據包的功能。這被稱爲「事件」,非常像C#事件。改善套接字性能
我基本上實現了它這樣的:
...
socket.ReceiveTimeout = ResolveTimeout(timeout);
while (...)
{
var buffer = new byte[count];
int readBytes = socket.Receive(buffer, 0, count, SocketFlags.None);
...
}
有了這個代碼,應用受到糟糕的表現。我在一個分析器中測量了它,它告訴我Socket.Receive需要45%的時間。
有什麼辦法可以改善這種情況嗎?
或等待[*'Socket.ReceiveAsync' *](http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.receiveasync(v = vs.110).aspx )如果你使用.NET 4.0或更高版本,並且可以使用'async-await' – 2014-10-02 16:32:12