PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
java
[問題] 關於 Socket連線問題
作者:
tas72732002
(蔥頭)
2015-06-26 23:18:35
請問一下各位大大
當Server 建立完成ServerSocket後 , 會產生一個socket來Listen
是否有Client 想要進行連線. 假設這時有Client進行連線,
Server會配置一個新的socket物件, 根據書上所說,
此時server也會使用一個新的port(非Listen port)與Client進行連線,
也就是"說Listen port與連線後實際和Client互動的port 是不同的" ?
如果這樣, 能如果有100個Client進行連線,
那Server就必須使用100 port來進行服務, 加上Listen的Port為101個 ~
我好奇的是, 假設Client的防火牆擋住了新產生了port, 那不是不能連線了嗎?
是我誤解了嗎 ?
請參考這張socket示意圖 : ppt.cc/8cra3
作者:
popcorny
(畢業了..@@")
2015-06-26 23:31:00
不是你理解錯就是書寫錯,Server Port不會變一個socket由src ip/port, dest ip/socket tcp/udp區分server port不需要變就可以分辨不同socket
作者: ctrlbreak
2015-06-27 08:40:00
clinet連出去的port不會變, 變的是server
作者:
popcorny
(畢業了..@@")
2015-06-27 09:11:00
既然都用java了.. 就把socket toString()出來看吧
作者:
tas72732002
(蔥頭)
2015-06-27 09:32:00
server變了? 那client不用變嗎
作者: ctrlbreak
2015-06-27 09:36:00
server接聽時的port不變, 產生連線後會分一個新的port與client連線.client還是維持在建立連線時的port不會變.
作者:
mars90226
(火星人)
2015-06-27 09:45:00
http://tinyurl.com/pjt798t
client或server都不會變socket是看(socket ip/port, client ip/port)來決定每個client都會對應到不同socket
作者:
andymai
(人生只有一次)
2015-06-27 11:01:00
所謂的client就是主動連線吧,server就是收到後回覆,如果雙方找的門牌號碼(port)不同了,那server和client的定義就不一樣了吧...
作者:
shaopin
(Brian)
2015-06-27 13:47:00
以系統角度來說, 產生的是一個新的 file descriptor沒有什麼新的port, 舊的portJava 只是用抽象的方式把他包裝起來, 稱為一個新的socket我認為可能是你的書翻譯有誤或是你的理解有誤server port 從頭到尾都不會變
繼續閱讀
[徵才] 外商公司徵Sr.Java Engineer
Sheepforpart
[問題] Java有辦法new C# dll中的class嗎?
baconcsie
Re: [問題] 不定長度的byte陣列該怎麼放?
popcorny
[問題] 不定長度的byte陣列該怎麼放?
LaPass
售java考試卷
celticskg5
[問題] 參數的Parser如何撰寫呢?
cjoe
[書籍] JavaSE8技術手冊--林信良
Uzak
Re: [問題] java 執行時的 unicode轉換問題
darkk6
[問題] java 執行時的 unicode轉換問題
tas72732002
[問題] .h標頭檔如何寫在JAVA
totemist
Links
booklink
Contact Us: admin [ a t ] ucptt.com