C # Socket принимает подключения, даже когда все потоки, вызывающие Accept (), уничтожены - PullRequest
0 голосов
/ 18 сентября 2018

Я пишу базовое multi-threaded сокет-серверное приложение-клиент.Я запускаю 3 задачи, каждая из которых calling socket.Accept() блокирует функцию.

Я запускаю 4 клиента, ожидая, что последнему не удастся подключиться.

Но, как ни странно, он подключается к серверу, ноничего не происходит после этого.Мой код не имеет контроля для обработки этого нового соединения.

Я звоню socket.Listen() с отставанием 0.

Я не могу понять это уже несколько часовлюбая помощь приветствуется.

Изображение 1: 3 блокирует потоки на Accept () 3 threads blocking on Accept()

Изображение 2: 0потоки, доступные после подключения и закрытия 3 клиентов 0 threads available after connecting and closing 3 clients

Изображение 3: 4-й клиент подключается, даже если нет потока, ожидающего при Accept () enter image description here

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