網路程式設計目前較為流行的網路程式設計模型是客戶機/伺服器(c/s)結構。即通訊雙方一方作為服務
器等待客戶提出請求並予以響應。客戶則在需要服務時向伺服器提出申請。伺服器一般作為
守護程序始終執行,監聽網路埠,一旦有客戶請求,就會啟動乙個服務程序來響應該客
戶,同時自己繼續監聽服務埠,使後來的客戶也能及時得到服務。
在internet上ip位址和主機名是一一對應的,通過網域名稱解析可以由主機名得到機器的ip,
由於機器名更接近自然語言,容易記憶,所以使用比ip位址廣泛,但是對機器而言只有ip地
址才是有效的識別符號。
套接字
所謂socket通常也稱作"套接字",用於描述ip位址和埠,是乙個通訊鏈的控制代碼。應用程
序通常通過"套接字"向網路發出請求或者應答網路請求。
套接字可以根據通訊性質分類,這種性質對於使用者是可見的。應用程式一般僅在同一類的
套接字間進行通訊。不過只要底層的通訊協議允許,不同型別的套接字間也照樣可以通訊。套
接字有兩種不同的型別:流套接字和資料報套接字。
下面的解釋比較抽象,不看也罷。
套接字是通訊的基石,是支援tcp/ip協議的網路通訊的基本操作單元。可以將套接字看作
不同主機間的程序進行雙向通訊的端點,它構成了單個主機內及整個網路間的程式設計介面。套接
字存在於通訊域中,通訊域是為了處理一般的執行緒通過套接字通訊而引進的一種抽象概念。套
接字通常和同乙個域中的套接字交換資料(資料交換也可能穿越域的界限,但這時一定要執行
某種解釋程式)。各種程序使用這個相同的域互相之間用internet協議簇來進行通訊。
套接字工作原理
要通過網際網路進行通訊,你至少需要一對套接字,其中乙個執行於客戶機端,我們稱之為
clientsocket,另乙個執行於伺服器端,我們稱之為serversocket。
根據連線啟動的方式以及本地套接字要連線的目標,套接字之間的連線過程可以分為三個
步驟:伺服器監聽,客戶端請求,連線確認。
所謂伺服器監聽,是伺服器端套接字並不定位具體的客戶端套接字,而是處於等待連線的
狀態,實時監控網路狀態。
所謂客戶端請求,是指由客戶端的套接字提出連線請求,要連線的目標是伺服器端的套接
字。為此,客戶端的套接字必須首先描述它要連線的伺服器的套接字,指出伺服器端套接字的
位址和埠號,然後就向伺服器端套接字提出連線請求。
所謂連線確認,是指當伺服器端套接字監聽到或者說接收到客戶端套接字的連線請求,它
就響應客戶端套接字的請求,建立乙個新的執行緒,把伺服器端套接字的描述發給客戶端,一旦
客戶端確認了此描述,連線就建立好了。而伺服器端套接字繼續處於監聽狀態,繼續接收其他
客戶端套接字的連線請求。
網路程式設計socket套接字
socket 建立乙個socket,主動套介面。bind 繫結ip和埠號到socket,需先配置ip 埠號。connect 客戶機 client 端和伺服器傳送請求建立連線。listen 伺服器 serv 監聽client傳送的請求。accept 完成連線,阻塞響應。sendto 傳送資料 recv...
網路程式設計 Socket套接字
網路程式設計 目前較為流行的網路程式設計模型是客戶機 伺服器結構。即通訊雙方一方作為伺服器等待客戶提出請求並予以響應,客戶則在需要服務時提出申請。伺服器一般作為守護程序始終執行,監聽網路埠,一旦由客戶請求,就會啟動乙個服務程序來響應該客戶,同時自己監聽服務埠,使後來的客戶也能及時的得到服務。在int...
java網路程式設計,socket套接字
下面是tcp的server 塊 socket的服務端 當前程式有弊端 只能為1個客戶端提供服務 public class myserversocket01 下面是客戶端 建立socket的客戶端的物件 socket socket new socket 連線伺服器,當然客戶端也可以繫結埠,如果不繫結埠...