socket變成的基本步驟(tcp/udp)
常見socket連線時,可以指定使用的傳輸層協議,socket可以支援不同的傳輸層協議(tcp或udp),當使用tcp協議進行連線時,該socket連線就是乙個tcp連線。server端所要做的事情主要是建立乙個通訊的端點,然後等待客戶端傳送的請求。典型的處理步驟如下:(伺服器端建立連線過程)
1、構建乙個serversocket例項,指定本地的埠。這個socket就是用來監聽指定埠的連線請求的。
2、重複如下幾個步驟:
a. 呼叫socket的accept()方法來獲得下面客戶端的連線請求。通過accept()方法返回的socket例項,建立了乙個和客戶端的新連線。
b. 通過這個返回的socket例項獲取inputstream和outputstream,可以通過這兩個stream來分別讀和寫資料。
c. 結束的時候呼叫socket例項的close()方法關閉socket連線。
客戶端的請求過程稍微有點不一樣:
1、構建socket例項,通過指定的遠端伺服器位址和埠來建立連線。
2、通過socket例項包含的inputstream和outputstream來進行資料的讀寫。
3、操作結束後呼叫socket例項的close方法,關閉。
1//簡單的 client/server程式設計
2//
服務端3
public
class
servercatch
(exception e)
14 system.out.ptintln("server------------------------");
15 socket socket = null;16
trycatch
(exception e)
23string line;
24 bufferedreader is =new bufferedreader(new
inputstreamreader(socket.getinputstream()));
25//
由socket物件得到的輸入流,並構造相應的bufferedreader物件
26 printwriter os = new
printwriter(socket.getoutputstream());
27//
由socket物件得到輸出流,並構造printwriter物件
28 bufferedreader sin = new bufferedreader(new
inputstreamreader(system.in));
29//
由系統標準輸入裝置構造bufferedreader物件
30 system.out.println("client:"+is.readline());
31//
在標準輸出上列印從客戶端讀入的字串
32 line =sin.readline();
33//
從標準輸入讀入一字串
34while(!line.equals("bye"))//
繼續迴圈
44 os.close();//
關閉socket輸出流
45is.close();
46socket.close();
47server.close();
48 }catch
(exception e)51}
52}
5354//
客戶端55
public
class
client//
繼續迴圈
80 os.close();//
關閉socket輸出流
81 is.close();//
關閉socket輸入流
82 socket.close();//
關閉socket
83 }catch
(exception e)86}
87 }
socket程式設計
一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...
Socket程式設計
對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...
socket程式設計
建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...