我有使用Java服務器 - 客戶端程序,我試圖創建一個端口和客戶端Socket
不同端口ServerSocket
,他們不能相互連接。客戶端拋出ConnectException
。當我將客戶端上的套接字更改爲與我用於ServerSocket的套接字相同時,它們就工作了。客戶端和服務器是否需要使用相同的端口進行連接?
正如我從這個線程Java Networking: Explain InputStream and OutputStream in Socket aswer瞭解,如果一臺機器創建一個帶有端口的套接字,然後該套接字綁定到該機器,那麼爲什麼客戶端和服務器需要使用相同的端口來相互連接?
此外,兩個應用程序的機器上不能使用同一端口等什麼發生當具有相同的端口和一臺機器兩個差值服務器需要通過2個不同的應用程序連接到他們兩個?
客戶端套接字使用與偵聽套接字相同的本地端口。 – EJP