**鏈結
socket簡介
兩個程序能夠進行通訊的辦法是在網路中唯一的標識乙個程序。而在網路中唯一的標識乙個程序的方法是:標出ip位址 + 協議 + 埠號。這樣就可以利用socket進行通訊了。
什麼是socket?socket翻譯為套接字,socket是在應用層和傳輸層之間的乙個抽象層,它把tcp/ip層複雜的操作抽象為幾個簡單的介面**用層呼叫已實現程序在網路中通訊。
socket抽象層在網路中的位置**:
socket通訊流程
(綠色為伺服器操作,純黑色為使用者操作)
伺服器根據位址型別(ipv4、ipv6)、socket型別、協議建立socket
伺服器為socket繫結對應的ip位址和埠號
伺服器監聽埠號請求,接收使用者發來的連線請求,此時伺服器沒有開啟socket
· 使用者建立socket
使用者開啟socket,並通過ip位址+埠號試圖connect伺服器的socket
伺服器接收到了使用者發來的socket連線請求,被動開啟socket,開始接收客戶端請求,直到使用者返回連線資訊。這時候伺服器的socket進入堵塞狀態,所謂堵塞,即accept();方法一直接收到客戶端返回連線資訊後才返回,然後開始接收下乙個使用者端請求
客戶端連線成功,開始向伺服器輸入狀態資訊
伺服器accept();方法返回,連線成功
客戶端寫入資訊
伺服器讀取資訊
客戶端關閉
服務端關閉
三次握手
在tcp/ip協議中,tcp協議通過三次握手建立乙個可靠的連線,就是socket通訊流程中的建立socket連線部分
第一次握手:客戶端嘗試連線伺服器,向伺服器傳送syn包(同步序列編號synchronize sequence numbers),syn=j,客戶端進入syn_send狀態等待伺服器確認
第二次握手:伺服器接收客戶端syn包並確認(ack=j+1),同時向客戶端傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手
socket通訊流程
原文 對 tcp ip udp socket 程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission...
socket通訊流程
socket是 開啟 讀 寫 關閉 模式的實現,以使用tcp協議通訊的socket為例,其互動流程大概是這樣子的 伺服器根據位址型別 ipv4,ipv6 socket型別 協議建立socket 伺服器為socket繫結ip位址和埠號 伺服器socket監聽埠號請求,隨時準備接收客戶端發來的連線,這時...
基本Socket通訊流程
1.初始化socket 用於監聽 1 初始化 socket s s socket 2 繫結 bind s,3 監聽 listen s,2.建立連線 1 檢查狀態 int ret select if ret 0 新連線 2 建立新連線 如果有客戶端請求連線 temp accept 注意,此時並不使用原...