本節講解tcp套介面程式設計中需要的最基本的介面函式。
tcp套介面程式設計的基本流程如下圖所示:
上圖描述了tcp連線的基本過程與其中所需要的套介面函式,下面進行具體描述:
1、socket函式
在網路程式設計中所需要進行的第一件事情就是建立乙個socket,無論是客戶端還是伺服器端,都需要建立乙個socket,該函式返回socket檔案描述符,類似於檔案描述符。
2、connect函式
客戶端建立了socket後,需要和伺服器端建立連線,此時使用connect函式和伺服器端進行連線。
3、bind函式
把乙個本地協議位址和套介面繫結,比如把本機的2222埠繫結到套介面。注意:為什麼在上圖中客戶端不需要呼叫bind函式?這是因為如果沒有呼叫bind函式繫結乙個埠的話,當呼叫connect函式時,核心會為該套介面臨時選定乙個埠,因此可以不用繫結。而伺服器之所以需要繫結的原因就是,所以客戶端都需要知道伺服器使用的哪個埠,所以需要提前繫結。
4、listen函式
當socket建立後,它通常被預設為是主動套介面,也就是說是預設為要馬上呼叫connect函式的,而作為伺服器是需要被動接受的,所以需要呼叫linsten函式將主動套介面轉換成被動套介面。呼叫linsten函式後,核心將從該套介面接收連線請求。
5、accept函式
此函式返回已經握手完成的連線的套介面。注意:此處的套介面不同於伺服器開始建立的監聽套介面,此套介面是已經完成連線的套介面,監聽套介面只是用來監聽。
6、close函式
資料傳輸完成後,需要關閉套介面
網路程式設計之TCP程式設計
tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...
Linux網路程式設計之TCP程式設計 經典案例
2 socket server.c linux網路程式設計之tcp程式設計,伺服器端讀資料 socket函式之後,返回值serfd,作為後面所有網路程式設計函式的第乙個引數 include include include include include include include include...
網路程式設計之TCP程式設計案例
客戶端 public static void main string args fileinputstream.close outputstream.close catch unknownhostexception e catch ioexception e 伺服器 public static vo...