第16章 網路程式設計

2021-09-28 15:02:23 字數 1881 閱讀 6094

利用套接字(socket)開發網路應用程式早已被廣泛的採用,以至於成為事實上的標準。

通訊的兩端都要有socket,是兩台機器間通訊的端點

網路通訊其實就是socket間的通訊。

socket允許程式把網路連線當成乙個流,資料在兩個socket間通過io傳輸。

一般主動發起通訊的應用程式屬客戶端,等待通訊請求的為服務端

客戶端socket的工作過程包含以下四個基本的步驟:

4.8.1 客戶端建立socket物件

客戶端程式可以使用socket類建立物件,建立的同時會自動向伺服器方發起連線。socket的構造方法是:

客戶端建立socketatclient物件的過程就是向伺服器發出套接字連線請求

socket s = new socket(「192.168.40.165」,9999);

outputstream out = s.getoutputstream();

out.write(「hello」.getbytes());

s.close();

4.8.2伺服器程式的工作過程包含以下四個基本的步驟:

呼叫 serversocket(int port)建立乙個伺服器端套接字,並繫結到指定埠上。用於監聽客戶端的請求。

呼叫 accept()監聽連線請求,如果客戶端請求連線,則接受連線,返回通訊套接字物件。

呼叫該socket類物件的 getoutputstream()和 getinputstream ()獲取輸出流和輸入流,開始網路資料的傳送和接收。

關閉serversocket和socket物件:客戶端訪問結束,關閉通訊套接字。

4.8.3伺服器建立 serversocket 物件

serversocket 物件負責等待客戶端請求建立套接字連線,類似郵局某個視窗中的業務員。也就是說,伺服器必須事先建立乙個等待客戶請求建立套接字連線的serversocket物件。所謂「接收」客戶的套接字請求,就是accept()方法會返回乙個 socket 物件

serversocket ss = new serversocket(9999);

socket s = ss.accept ();

inputstream in = s.getinputstream();

byte buf = new byte[1024];

int num = in.read(buf);

string str = new string(buf,0,num);

system.out.println(s.getinetaddress().tostring()+」:」+str);

s.close();

ss.close();

第16章 網路程式設計

網路通訊協議 計算機網路中實現通訊必須有一些約定,即通訊協議,對速率 傳輸 結構 傳輸控制步驟 出錯控制等制定標準。通訊協議分層的思想 由於結點之間聯絡很複雜,在制定協議時,把複雜成份分解成一些簡單的成份,再將它們復合起來。最常用的復合方式是層次方式,即同層間可以通訊 上一層可以呼叫下一層,而與再下...

第16章 網路程式設計 2

16.3 python中的網路程式設計 16.3.1 socket 模組函式 使用socket.socket 函式來建立套接字。socket socket family,socket type,protocol 0 import socket tcpsock socket.socket socket...

第14章 網路程式設計

14.1 幾個網路模組 服務端 import socket s socket.socket host socket.gethostname port 8090 s.bind host,port s.listen 5 while true c,addr s.accept print got conne...