推 PsMonkey:server/client 不要用同一台,搭配 netstat 看一下 11/25 21:46
→ PsMonkey:我覺得你是誤解 localport 的意思 see: getLocalPort() 11/25 21:53
我用了兩台電腦,server 的那台,
System.out 上的 sock.toString() 輸出,localport 還是在 5000上。
不過後來我去 stack overflow 翻文章,也有人提到類似的問題,
結論也 "沒有" new socket 一定要開在不同 port 上的說法。
看來我是太相信書了,深入淺出 HeadFirst Java (2nd ed) p.483 上,
說回傳的 socket 會在不同的 port上,但事實並非一定如此。
→ cha122977:試試拿2個client端同時去連 看看server上兩個port如何 11/26 03:16
呵呵,總算翻到關於 p.483 的討論串
http://stackoverflow.com/questions/4307549/serversocket-accept-method?rq=1
應該是 HeadFirst Java 寫錯了。
※ 編輯: clairelune 來自: 1.34.173.223 (11/26 04:11)
→ PsMonkey:手上沒書,不過如果是 client 印出來,那的確會不同 port 11/26 09:49
推 keeperkai:剛剛在bsd上面測試了一下 應該說是Server(Master)socket 11/26 21:25
→ keeperkai:和他accept產生出來的Slave socket會在同port上.client 11/26 21:27
→ keeperkai:在自己的機器上會另外占用一個port連向slave socket 11/26 21:28