Отправка сообщения через определенный клиентский порт - PullRequest
0 голосов
/ 23 февраля 2010

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

На моей стороне клиента они ограничивают порты, поэтому, если вы хотите использовать действительный свободный порт, я должен установить его в клиентской программе, а не в ОС. Выбор этого. Это моя проблема.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2010

Я полагаю, вы используете пространство имен System.Net.Sockets?

Если это так, классы, подобные NetworkStream, принимают Socket в качестве параметра конструктора:

http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.aspx

Аналогично, TcpClient принимает порт и сервер в качестве аргументов конструктора, в этом контексте порт аналогичен сокету:

http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspx

Наконец-то. Вы можете контролировать номер этого сокета несколькими способами:

  • Параметр командной строки
  • Настройка в файле Application.Config
  • Читать его из реестра

Есть несколько методов для этого типа вещей.

0 голосов
/ 23 февраля 2010

Привязать сокет клиента к локальному адресу (ip и номер порта) перед подключением к серверу. Будьте готовы обрабатывать ошибки, например когда порт недоступен (выберите следующий порт, повторите попытку).

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