我怎么知道客户端何时连接此代码?

时间:2011-10-18 18:34:40

标签: c# visual-studio-2010

while (!Server.isShuttingDown)
{
   Server.client = Server.listener.AcceptTcpClient();
   Connection con = new Connection(Server.client);
}

如何使服务器知道客户端何时连接?我为客户端连接时发生的事情做了一个课程,但这是无用的,直到我做到这一点,以便它知道客户端何时连接。

1 个答案:

答案 0 :(得分:1)

AcceptTpcClient方法将阻塞直到客户端连接 - 所以在它和Connection构造函数调用之间插入一行......或者甚至在它之后插入一行,假设Connection构造函数开始一个新的线程。

请注意,在每次迭代中,您似乎覆盖单个变量变量的值Server.client,这听起来不是一个好主意。我怀疑你会更好:

while (!Server.IsShuttingDown) {
    var client = Server.Listener.AcceptTcpClient();
    // Act on "client has connected" here
    Connection con = new Connection(client);
}

(目前尚不清楚为什么Server对象本身并没有完成所有这些...或者至少暴露了AcceptTcpClient方法本身。目前这看起来有点违反了Law of Demeter。)