Как я узнаю, когда клиент соединяется с этим кодом? - PullRequest
0 голосов
/ 18 октября 2011
while (!Server.isShuttingDown)
{
   Server.client = Server.listener.AcceptTcpClient();
   Connection con = new Connection(Server.client);
}

Как сделать так, чтобы сервер знал, когда клиент подключен?Я сделал класс для того, что происходит, когда клиент подключается, но это бесполезно, пока я не сделаю так, чтобы он знал, когда клиент подключается.

1 Ответ

1 голос
/ 18 октября 2011

Что ж, метод AcceptTpcClient будет блокироваться до тех пор, пока клиент не подключится, поэтому вставьте строку между этим и вызовом конструктора Connection ... или даже после него, предполагая, что конструктор Connection запускает новый поток. 1004 *

Имейте в виду, похоже, что вы перезаписываете значение одной переменной - Server.client - на каждой итерации, что не очень хорошая идея. Я подозреваю, что вам будет лучше с:

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

(Непонятно, почему сам объект Server не делает всего этого ... или, по крайней мере, не раскрывает сам метод AcceptTcpClient. В настоящее время это выглядит как нарушение закона Деметры .)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...