作者lungswu (想要逃.................)
看板Programming
標題Re: [問題] shared socket
時間Sun May 18 20:49:24 2008
※ 引述《nosrep (ㄎ)》之銘言:
: shared socket 的應用原因,
: 有兩個現存的獨立 processes, 本來都是用來提供網路服務的Server,
: 由於其中 Process1 是特別為了特殊任務專用的Server,
: 不希望把他跟原來Process2的程式混在一起~所以獨立出來,
: Process1訊息解析完之後,將會把本來服務的用戶端連線(socket or fd),
: 希望在不斷連線的情況之下,能傳遞到 Process2 讓其繼續服務使用者.
: 我本來是不覺得這個方法可行,是有人跟我說到shared socket技術~
: 我寫那麼久的網路程式,還真的沒用到過...
: 在怎麼樣也是讓客戶另外建一個連線,
: 不然逼不得已就是做個 pipe channel 之類的犧牲效能~
: ※ 引述《nosrep (ㄎ)》之銘言:
: : 請問有人在 unix系統使用shared socket的技術嘛?
: : 網路上似乎找不到文獻...頂多看到的是 fork 出來的 processes 互相 shared.
: : 但是我想要的是兩個獨立 AP 之間的 shared socket 技術?
: : 請指教~
這邊有幾種方法,可以試試,可以行的通的
socketpair() function, Section 14.7 of UNPv1 有詳盡的介紹
I_SENDFD, I_RECVFD of ioctl() function, Section 15.5.1 of APUE 有詳盡的介紹
還有 Berkeley-delived kernel也有他的方法。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.175.18
→ Lordaeron:socketpair是child/parent吧,可以不同?125.232.135.128 05/18 20:59
→ Lordaeron:process? 雙父?125.232.135.128 05/18 20:59
→ Lordaeron:socketpair用法像pipe吧.125.232.135.128 05/18 21:05
→ Lordaeron:跟shared socket 有像?125.232.135.128 05/18 21:06
推 nosrep:這是IPC,不是我說的 shared socket 60.248.204.237 05/19 10:15
→ lungswu:樓上要將socket id傳到另一process,使別 59.120.197.247 05/19 10:40
→ lungswu:的process也可以用該建立好的socket? 59.120.197.247 05/19 10:40
→ Lordaeron:shared socket就是兩個不同的父process125.232.139.104 05/19 13:02
→ Lordaeron:共用同一個fd125.232.139.104 05/19 13:02
→ nosrep:to lungswu: yes 60.248.204.237 05/19 17:01