簡體   English   中英

ServerSocket.accept()返回的Java客戶端套接字

[英]Java client socket returned by ServerSocket.accept()

這更多是一個通用的套接字問題。 在Java中,如果我將ServerSocket綁定到特定端口(例如4444),則我知道它正在偵聽連接請求。 在接收到連接請求之前,accept()方法將阻塞,並返回一個新的Socket與客戶端進行通信。 返回的Socket的遠程端點是客戶端的IP地址和端口。

但是,令我感到困惑的是,返回的Socket的本地端口與正在偵聽請求的ServerSocket的端口號相同(在本例中為4444)。 我以為兩個套接字不能綁定到同一端口? 返回的套接字不是服務器上的其他端口嗎?

兩個ServerSocket無法偵聽相同的IP地址和端口。 可能有兩個ServerSocket偵聽不同的IP和相同的端口。

對於本地和遠程,兩個套接字不能具有相同的IP和端口。 如果遠程IP和端口不同,則許多套接字的本地端口可以相同。

您不能使用多個套接字來偵聽給定的IP:端口組合,但是可以存在多個接受到同一組合的連接。

通過本地IP地址和端口以及遠程IP地址和端口的組合來標識連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM