我有一个 Windows 服务,可以处理来自我们在现场的客户端的不同客户端请求。它工作正常,我在服务器上有类似的代码:
server.BeginAcceptTcpClient(ae.End(), null);
yield return 1;
// socket connection has been established.
TcpClient client;
try {
client = server.EndAcceptTcpClient(ae.DequeueAsyncResult());
} catch (Exception e) {
Log.Error(e.ToString());
yield break;
}
using (client) {
// Set up another listener.
Start(server);
using (Stream stream = client.GetStream()) {
... All the work happens here and stream is returned to the client
}
}
当客户端发送请求 request1 并获得回复 1 时,这可以正常工作,但如果客户端在此之后立即发送请求 2,则需要再次连接然后接收回复 2。有时,此连接最多可能需要 3 秒(使用 3G 客户端时)。
我想让它在服务器侦听的地方,如果建立了连接,可以通过流接收/响应多个请求,然后在客户端发送“结束”请求后,将断开连接。我想这会快得多,这可能吗?
任何帮助,将不胜感激。