Как заставить winsock прослушивать определенный порт?

StackOverflow https://stackoverflow.com/questions/1416010

  •  06-07-2019
  •  | 
  •  

Вопрос

Это должно быть действительно очевидно, но как мне заставить winsock прослушивать определенный порт (получать данные?), я не могу найти метод, который позволяет мне это делать!

Извините, что это, вероятно, так очевидно.

Я пытаюсь создать приложение для чата, которое, очевидно, работает в настройке сервера / клиента.

Это было полезно?

Решение

Вы связываете сокет, а затем прослушать и принимать подключения. Более подробно описано в Начало работы с WinSock . Существует также хорошее руководство для сокетов BSD, которое вы также должны прочитать.

Для .NET вам, вероятно, нужна система. Net.Sockets.Socket (и это методы Bind / Listen / Accept / Send / Receive) вместо родного WinSock, но концепции те же, поэтому я оставлю все ссылки.

Другие советы

При использовании TCP-сокетов вы связываете, слушаете, принимаете и, в конце концов, получаете recv. Вы можете найти некоторые учебные материалы в здесь или ознакомиться с официальной документацией MSDN.

Winsock API основан на BSD-сокетах UNIX; поэтому они очень, очень похожи. Возможно, вы захотите разобраться в этом. Книга, которую я недавно написал, Сетевое программирование UNIX Ричарда Стивенса, и он объясняет почти все, что нужно знать о сокетах.

Вы можете также рассмотреть возможность запуска сокетов в отдельном потоке для улучшения читабельности и производительности.

Редактировать: как для прослушивания на конкретном порту; это параметр sin.port вашей структуры SOCKADDR_IN.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top