блокировка сокетов c # - PullRequest
       2

блокировка сокетов c #

0 голосов
/ 26 февраля 2011

Скажем, у меня есть TcpClient, который я принимаю от TcpServer в c #, и по какой-то причине он продолжает сбрасываться по умолчанию с блокировкой.Есть ли какая-то другая сила, которая может изменить способ блокировки сокета?Например, скажем, на него вообще влияет удаленное соединение?

Я знаю, что установил блокировку для восстановления нескольких сборок, но я изменил ее и даже ввел TcpClient вместо прямого сокета.Я специально не изменил блокировку обратно на true, я просто прокомментировал blocking = false out.Это то, что сохраняется, возможно, с конечной точкой?

Я не знаю, хотя мне только показалось, что когда-то я программировал, мои сокеты просто перестали работать без каких-либо реальных изменений в их коде.*

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

Как, скажем, это зависит от пульта соединение вообще?

Нет.

Было бы лучше, если бы вы показали какой-то код, где вы создаете Socket или TcpClient на стороне сервера. Я не могу найти TcpServer класс в C #. Вы говорите о TcpListener? Если да, убедитесь, что вы set Socket's Blocking true, если вы используете AcceptSocket для создания нового сокета. Если вы звоните AcceptTcpClient, вам не нужно беспокоиться о режиме блокировки или неблокирования, так как TcpClient всегда режим блокировки.

Класс TcpClient предоставляет простой методы подключения, отправки и получение потоковых данных по сети в режиме синхронной блокировки .

от MSDN .

0 голосов
/ 19 августа 2011

Ответа действительно нет, я никогда не дублировал его, и через несколько месяцев, после установки новой версии Windows, взял код и у меня больше не было проблем. Очень странно, но демонстративно не смог найти программных аргументов в пользу этого. Как я уже сказал, через несколько месяцев это просто сработало? Они действительно должны иметь опцию «Unawnserable»: p.

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