我開發了一個簡單的異步服務器,它偵聽發送一些小塊數據的unix套接字和同步客戶端。從客戶端發送數據到服務器收到數據的時刻之間的時間是完全隨機的,從1秒到9秒。我想知道爲什麼是這個原因?服務器被實現爲顯示在MSDN例如這裏(使用beginReceive):http://msdn.microsoft.com/en-us/library/fx6588te.aspx單聲道,c#,套接字,性能
EndPoint ep = new UnixEndPoint(_fileName);
_socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.IP);
try
{
_socket.Bind(ep);
_socket.Listen(_maxConnectionsInQuee);
while(true)
{
done.Reset();
_socket.BeginAccept(new AsyncCallback(AcceptCallback), null);
done.WaitOne();
}
}
並在客戶端:
EndPoint ep = new UnixEndPoint(_fileName);
_socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.IP);
_socket.Connect(ep);
byte[] bytes = Encoding.UTF8.GetBytes(message);
_socket.Send(bytes);
方法,該方法將數據發送到服務器從web服務方法調用(通過xsp2運行)。
你用什麼作爲客戶端? – Gonzalo 2009-11-23 15:16:05
順便說一句,我正在編輯標題。這些不是unix域套接字。 – Gonzalo 2009-11-23 15:16:43
其實他們是。我使用Mono.Unix中的UnixEndPoint,這幾乎是唯一的區別。我已經在上面的文章中添加了一些代碼來澄清 – 2009-11-23 17:26:38