linux網路程式設計之二TCP套介面程式設計

2021-07-03 01:31:59 字數 846 閱讀 3949

本節講解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...