Java: разница между Socket и ServerSocket в использовании портаJAVA

Программисты JAVA общаются здесь
Anonymous
Java: разница между Socket и ServerSocket в использовании порта

Сообщение Anonymous »

На стороне сервера мы используем

Код: Выделить всё

Socket server = serverSocket.accept();
чтобы создать сокет. После создания сокета мы можем создать новый поток для обработки потока ввода/вывода этого сокета. Таким образом, мы можем вернуться к прослушиванию того же порта и создать новый сокет, если поступают дополнительные запросы на соединение. Поскольку мы уже создали ServerSocket для определенного порта, мы, конечно, не можем снова создать еще один ServerSocket для этого порта.

Итак, насколько я понимаю, могу ли я заключить, что на стороне сервера мы можем создать несколько сокетов под одним портом? (аналогично тому, что делает веб-сервер)

На самом деле мой вопрос в том, что на стороне клиента, когда мы создаем сокет, мы можем указать локальный порт, который мы хотим использовать. . После того как мы успешно создали клиентский сокет на этом локальном порту, можем ли мы повторно использовать этот порт для другого клиентского сокета? Привязывается ли этот порт к сокету постоянно, пока сокет не будет закрыт (или порт не будет закрыт)? Поскольку на стороне клиента нет концепции «прослушивания», можем ли мы делать то же самое, что и ServerSocket (см. ServerSocket может создавать несколько сокетов под одним портом)?

Я серьезно смущен тем, как клиентская сторона обрабатывает порт и сокет, потому что я сравниваю ServerSocket с клиентским сокетом.

Пожалуйста, укажите мне правильное направление, я знаю, что мое мышление в чем-то неправильное. Спасибо большое.

Подробнее здесь: https://stackoverflow.com/questions/177 ... using-port

Вернуться в «JAVA»