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