作者pigLU.bbs@ptt.cc (^^) 看板: linux
標題[問題] socket 問題
時間批踢踢實業 (2008/02/20 Wed 09:26:54)
我寫了一個 UDP socket 的程式
可以用來接受和傳送 data (從 keyboard 輸入,螢幕輸出,linux 環境下)
就我測試的結果
如果我同時執行兩個這個程式(假設 A process 和 B process),讓它們互傳資料
A 的 local port 為 1111 , server port 為 2222
B 的 local port 為 2222 , server port 為 1111
我發現不管是 A or B ,他們用的 socket file descriptor 都等於 3
這是代表它們用同一個 socket 嗎? 會是因為我在同一機器下執行所以它會自動去找出
這個 fd 嗎?@@
因為 A 和 B 是兩個不同的 process ,所以我覺得它們都用同一個 fd 我有點疑惑
....
那如果是在不同的機器下執行又會是如何?
不好意思因為我不是非常懂 socket 的行為
所以想請問有沒有人可以解釋一下? 謝謝 ^^
另外...
我發現如果我用不同的 port 去執行這個程式
例如
A 的 local port 為 1111 , server port 為 2222
B 的 local port 為 3333 , server port 為 4444
也是同時執行
socket fd 還是等於 3 ==> 代表同一個 ip 只能有一個 socket 嗎?@@
然後它會印出....
Failed to bind local socket.: Address already in use
請問有人知道為什麼嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.3.16