【发布时间】:2009-11-23 15:01:51
【问题描述】:
我开发了简单的异步服务器来监听 unix 套接字和同步客户端发送一些小数据。从我从客户端发送数据到服务器接收到数据之间的时间是完全随机的,从 1 到 9 秒。我想知道为什么是这个原因?服务器的实现如这里的 msdn 示例所示(使用 beginReceive):http://msdn.microsoft.com/en-us/library/fx6588te.aspx
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);
从webservice方法调用发送数据到服务器的方法(通过xsp2运行)。
【问题讨论】:
-
你用什么做客户端?
-
顺便说一句,我正在编辑标题。这些不是 unix 域套接字。
-
其实他们是。我正在使用 Mono.Unix 中的 UnixEndPoint,这几乎是唯一的区别。我在上面的帖子中添加了一些代码以进行澄清
-
这很奇怪。 Xsp2 本身(嗯,mod-mono-server2)使用 unix 套接字与 mod_mono 通信,我从未见过那里有延迟。
-
嗯...对我来说这很奇怪。进行通信时,您能指出我的 xsp2 来源吗?我也许可以通过工作示例弄清楚