回文章列表
作者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
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻