TCP IP協議 socket套接字

2021-08-26 12:01:16 字數 878 閱讀 4909

1. socket

之前講過tcp/ip各層的定義,基於套接字的程式設計處在傳輸層和應用層的中間。socket能夠相容多種網路協議,最常見的是tcp/udp。

下面是使用scoket程式設計,客戶端與伺服器端tcp連線的整個過程:

注意看每個狀態下的括號裡的就是程式中具體用到的函式,而具體程式中,客戶端和伺服器端是這樣呼叫這些函式的:

客戶端建立套接字(socket),與伺服器端進行連線(connect),成功後與核心tcp協議棧進行讀寫互動(read,write)。

伺服器端建立套接字(socket),成功後繫結特定ip位址和埠(bind),然後將其設定為監聽客戶請求的狀態(listen)。如果有來自客戶端的請求,就接收(accept),成功後與核心tcp協議進行讀寫互動(read,write)。

子程序的功能:

等待使用者輸入聊天資訊

將聊天資訊寫到管道(pipe),並傳送給父程序

父程序的功能:

使用epoll機制接受服務端發來的資訊,並顯示給使用者,使使用者看到其他使用者的聊天資訊

將子程序發給的聊天資訊從管道(pipe)中讀取, 並傳送給服務端

服務端類需要支援:

支援多個客戶端接入,實現聊天室基本功能

啟動服務建立監聽埠等待客戶端連線

使用epoll機制實現併發,增加效率

客戶端連線時傳送歡迎訊息並儲存連線記錄

客戶端傳送訊息時廣播給其他所有客戶端

客戶端請求退出時對連線資訊進行清理

TCP IP協議Http協議Socket的區別

tpc ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。關於tcp ip和http協議的關係,網路有一段比較容易理解的介紹 我們在傳輸資料時,可以只使用 傳輸層 tcp ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料...

TCP IP協議與socket的關係

一 常識 要寫網路程式就必須用socket,這是程式設計師都知道的。而且,面試的時候,我們會被問不會socket程式設計?一般來說,很多人都會 說,socket程式設計基本就是listen,accept以及send,write等幾個基本的操作。是的,就跟常見的檔案操作一樣,只要寫過就一定知道。對於網...

TCP IP協議理解(包括socket)

運用層協議 提供各種運用程式的介面,比如www服務的http http是基於tcp協議並設計成短連線 傳輸層協議 提供端到端連線服務的介面 tcp和udp socket可以理解成封裝了多個傳輸層介面 包括tcp和udp 並提供了一系列api,簡化了網路通訊的開發。使用socket通訊相當於跳過應用層...