В настоящее время я работаю над реализацией TCP-клиента/сервера в C. В этом я обнаружил, что могу указать любое случайное число в качестве номера порта для моего ПК. Правильно ли это процедура? Или есть ли стандартный номер порта для моего ПК?Как найти номер порта любого ПК?
ответ
Я не знаю стандарта, но я говорю, что это не так. По крайней мере, мне это не нравится.
Вы можете проверить занятые порты, проанализировав выходы программ, например netstat
, и не используйте их. Вы также можете использовать метод, который пытается подключиться к одному порту, а при сбое пытается использовать другой порт. Если вам действительно не повезло, вы должны получить действительный порт во второй попытке.
Вы должны использовать порты в пределах 49152-65535. Порты ниже 49152 зарезервированы/зарегистрированы.
Если у вас есть вопрос, можете ли вы указать номер порта, на котором ваш сервер прослушивает, , тогда вы ошибаетесь, номера портов TCP/IP ниже 1024 являются особенными в том, что обычным пользователям не разрешается запускать на них серверы , вы можете использовать не-привилегированные порты (порты> 1024). просто убедитесь, что какое-либо другое приложение еще не использует этот порт (выше 1024), используя netstat
Это правильно - вы НИКОГДА не должны использовать порты <1024, если вы действительно не знаете, что делаете! –
В принципе, вы можете использовать любой порт (при наличии достаточных прав доступа). Но сервер и клиент должны согласиться с на порт, и он не должен использоваться другим приложением.
Следовательно, многие порты уже зарезервированы для специальных приложений. 80 для HTTP, 22 для SSH и так далее. Файл /etc/services
дает более подробную информацию.
номера портов 0-1023 называются Широко известные порты, номера 1024-49151 называются Зарегистрированные порты (не все из них, но вы получите идею).
- 1. Найти номер порта
- 2. Как найти номер порта в ubuntu 12.04?
- 3. Как найти номер порта IP-камеры?
- 4. Как найти номер порта JMX по умолчанию?
- 5. В php fsockopen() найти номер порта пользователя
- 6. Найти номер порта, где HDFS слушает
- 7. как сменить номер порта
- 8. Как выбрать номер порта?
- 9. Derby, как изменить номер порта
- 10. номер порта порта VM по именованной трубе
- 11. Номер измененного порта Javamail
- 12. Как изменить номер порта tomcat
- 13. Как получить пакеты UDP из любого ip и любого порта?
- 14. Учитывая номер порта, как использовать netstat, чтобы найти деталь подключения?
- 15. Как найти номер порта вызывающего веб-службы в ASP.NET?
- 16. Как найти номер порта подключенного к сети устройства?
- 17. HTTP номер порта сервера
- 18. номер порта клиента
- 19. ServletHttpRequest.getRequestUrl потерял номер порта
- 20. Номер порта порта Openvswitch для контроллера
- 21. JQuery, ajax, номер порта
- 22. Номер порта источника гнезд
- 23. номер порта сервера mysql
- 24. Изменить номер порта Yesod
- 25. Читайте номер порта от пользователя
- 26. номер порта на сервере
- 27. UserDefined Номер порта
- 28. Матч номер порта
- 29. Номер порта, повторяющийся дважды?
- 30. номер порта в URL
Озбеков: Можете ли вы поддержать свое последнее требование (относительно диапазонов портов)? – Philip
@Philip: любой из 'cat/etc/services', http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml или RFC6335. – DevSolar
@DevSolar: Хороший ответ! Тем не менее, я думаю, что OP спрашивает, какой номер порта использовать для своего * сервера *, поскольку ОС уже заботится о назначении клиентских портов. В этом случае я бы не рекомендовал использовать 49152-65535, поскольку RFC6335 заявляет, что «порты в диапазоне динамических портов (49152-65535) специально выделены для локального и динамического использования», оба из которых запрещают их использовать для серверов , – Philip