Если на компьютере запущено серверное приложение, которое прослушивает какой-либо порт (например, 9999) и на том же компьютере, несколько клиентских приложений открывают соединение TcpClient (localhost, 9999) с тем же сервером приложение, что произойдет? Будет ли это причиной какого-то столкновения?Несколько TcpClients на том же компьютере, что и сервер
ответ
В C# a TcpListener
ожидает входящих соединений от клиента с AcceptSocket
или AcceptTcpClient
. При успешном соединении вы возвращаете объект Socket
, который может использоваться для связи с этим конкретным клиентом, идентифицированным IP-адресом клиента. Если соединение с клиентом обрабатывается в другом потоке, чем AcceptSocket
, ваше приложение-приложение может разговаривать сразу с несколькими клиентами. например серверный цикл просто вызывает Accept
и непосредственно передает Socket
некоторому обработчику Thread/Task. И вообще для входящих соединений вы знаете IP-адрес клиента (и порт), и на основе этого можно мультиплексировать соединение/данные в соответствующий сокет. Хороший и полный ответ, но не C# конкретных здесь TCP : two different sockets sharing a port?
На стороне клиента случайный порт выбран для исходящего соединения. Это делается с помощью сетевой/сетевой системы
В парадигме Интернета номера портов находятся между 0 и 65535 и выбраны случайным образом программным обеспечением транспортного уровня, запущенным на клиентском хосте. Они называются эфемерными портами (от 1024 до 49151).
Мой вопрос: что происходит, когда все работает на одной машине. – LimS
Мой вопрос: что происходит, когда все находится на одной машине, сервере и клиентах. Все они имеют один и тот же IP-адрес. Сервер прослушивает указанный порт, а для портов клиентов - я не уверен, что вы выбираете случайный выходной порт неявно или нет. Если нет, то я не понимаю, как они могут иметь разный сокет. – LimS
Да, вы правы Я думаю, что базовая система сокетов ОС выбирает случайные внешние ресурсы для клиента –
- 1. Запустите сервер Apache2 и XAMPP на том же компьютере (Ubuntu)
- 2. захватить трафик с эмулятора на сервер на том же компьютере
- 3. Java RMI: несколько rmiregistry на том же компьютере
- 4. Клиент - Сервер на том же компьютере, используя UDP
- 5. Услуги WCF на том же компьютере
- 6. тестирование клиент-сервера на том же компьютере
- 7. Возможно ли узнать, работает ли клиент (браузер) на том же компьютере, что и сервер?
- 8. Можно ли запустить несколько докеров-демонами на том же компьютере
- 9. C# несколько tcpclients одновременно
- 10. Использование сервера IIS и сервера Wamp на том же компьютере
- 11. Закрытие System.Net.Sockets.TcpClient убивает соединение для других TCPClients на одном и том же IP-адресе
- 12. Настройка netem на том же компьютере
- 13. SVN и Jenkins для C# на том же компьютере (ubuntu)
- 14. zend server и xampp на том же компьютере
- 15. Работает на python и Anaconda на том же компьютере Windows
- 16. Сокеты Java: несколько потоков клиентов на одном и том же порту на одном компьютере?
- 17. Запуск обоих python 2.6 и 3.1 на том же компьютере
- 18. Разработка и доступ к хосту производства на том же компьютере
- 19. XAMPP, Apache и IIS на том же компьютере
- 20. Несколько экземпляров ArangoDB на том же сервере
- 21. два приложения, работающие на одном и том же компьютере
- 22. SSH connecxion в том же компьютере
- 23. Установите CRM 2011 и SharePoint 2010 на том же компьютере
- 24. Использование службы http и ее клиента на том же компьютере
- 25. Как установить и использовать несколько версий узла на одном и том же производственном компьютере?
- 26. Ошибка CORS для сервера NODEJS, работающего на том же компьютере, что и домен
- 27. Несколько служб tcp на том же порту
- 28. Несколько экземпляров memcache на том же сервере
- 29. Git-клиент и сервер на одном компьютере
- 30. Ehcache не реплицируется между двумя tomcat на том же компьютере
Возможный дубликат [Можно два приложения слушать тот же порт?] (Http://stackoverflow.com/questions/1694144/can-two-applications-listen-to-the-same -port) – Cjen1
@ Микки, я просто не понимаю, как это работает, как пакеты не смешиваются? – LimS