C #, как получить список открытых "TcpListeners" - PullRequest
0 голосов
/ 21 января 2011

Я хочу добавить многопользовательскую поддержку в одну из моих игр, поэтому я создал кнопку «Создать сервер», которая открывает TcpListener и прослушивает запросы на подключение, и кнопку «Присоединиться к серверу», я хочу, чтобы эта кнопка отображала списоквсе открытые TcpListeners (чтобы пользователь мог щелкнуть по ним по соединению), есть ли встроенные функции для этого в c #?

Ответы [ 3 ]

3 голосов
/ 21 января 2011

Вы хотите получить список всех слушателей на всех машинах в сети (или во всем Интернете)? Тогда ответ - нет, для этого нет встроенной функции.

В небольшой локальной сети вам, возможно, удастся обойтись без серверов, транслирующих их присутствие. Так обычно делали игры до появления Интернета.

В настоящее время они обычно подключаются к центральному серверу, на котором есть список всех серверов, на которых размещены настоящие игры.

В любом случае, вам придется поработать.

0 голосов
/ 21 января 2011

Если вы ограничены локальной сетью, вы можете транслировать на порт, который прослушивают игровые серверы, и попросить их ответить каким-нибудь регистрационным сообщением.

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

0 голосов
/ 21 января 2011

К сожалению, эта функция для этого в спецификации IP или TCP. Ни IP, ни TCP не предоставляют какой-либо функциональности типа "поиск службы".

Чтобы реализовать эту функцию, вашим игрокам, работающим на серверах, нужно каким-то образом передавать информацию о своем соединении (IP-адрес / номер порта) другим игрокам, ищущим игру. Это традиционно делается с помощью хоста / сервера координации, который публикует информацию о доступных играх.

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