socket雙向傳遞

2021-10-04 22:20:19 字數 1446 閱讀 3478

客戶端

//建立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是連線網路之後分配給個人主機的唯...