客戶端
//建立socket,設定傳送位址
socket client=
newsocket
("localhost"
,8888);
//資料封裝
dataoutputstream dos=
newdataoutputstream
(client.
getoutputstream()
);dos.
writeutf
("你過得怎麼樣?");
//先去看完伺服器端,再看這裡
//看完伺服器端,這裡解封資料,輸出的是伺服器端重新裝載的資料,說明socket是可以共享的,兩邊操縱同乙個socket。
datainputstream dis=
newdatainputstream
(client.
getinputstream()
);string response=dis.
readutf()
; system.out.
println
(response)
;
伺服器端
//繫結埠
serversocket serversocket=
newserversocket
(8888);
socket client=serversocket.
accept()
;//解封修飾流
datainputstream dis=
newdatainputstream
(client.
getinputstream()
);string str=dis.
readutf()
; system.out.
println
(str)
;//重新裝載client,重點在於這裡沒有任何socket的傳遞,再跳到之前客戶端的那個位置
dataoutputstream dos=
newdataoutputstream
(client.
getoutputstream()
);dos.
writeutf
("我過得很好,你呢?");
client.
close()
; dis.
close()
;
伺服器端視窗
客戶端視窗
程序間傳遞socket的做法
我們知道父程序在子程序被fork出來之前開啟的檔案描述符是能被子程序繼承下來的,但是一旦子程序已經建立後,父程序開啟的檔案描述符要怎樣才能傳遞給子程序呢?unix提供相應的技術來滿足這一需求,這就是同一臺主機上程序間的檔案描述符傳遞,很美妙而且強大的技術。想象一下我們試圖實現乙個伺服器,接收多個客戶...
程序間SOCKET控制代碼傳遞 程序池應用
1。函式及結構介紹 開發通訊程式,經常遇到服務程式的開發,常見使用程序池及執行緒池,下面介紹一對在程序池應用非常有用的函式,sendmsg recvmsg,可以通過這組函式在程序中傳遞socket描述符。可以在主程序使用多路復用偵聽socket事件,將讀寫事件控制代碼傳遞給工作程序進行處理。在使用函...
C 實現區域網雙向通訊(socket)
如果想要實現兩不同區域網之間的主機程序通訊,即實現區域網內兩個電腦之間的資料傳輸,那麼就不能通過管道或者命名管道的方式來實現,這裡的區域網通訊是通過一種叫做socket套接字的方式來實現。首先想要與同一區域網內部的另乙個電腦進行資料傳輸,需要知道它的ip位址,因為ip是連線網路之後分配給個人主機的唯...