while (!Server.isShuttingDown)
{
Server.client = Server.listener.AcceptTcpClient();
Connection con = new Connection(Server.client);
}
如何使服务器知道客户端何时连接?我为客户端连接时发生的事情做了一个课程,但这是无用的,直到我做到这一点,以便它知道客户端何时连接。
答案 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。)