1. 程式人生 > >一步一步學習Unix程式設計[1]——TCP基本函式及原理

一步一步學習Unix程式設計[1]——TCP基本函式及原理

轉載請註明t1234xy4原創:http://blog.csdn.net/t1234xy4/article/details/51892751

1、三次握手

TCP/IP 客服端與伺服器建立連線的過程被稱為三次握手。三次握手過程:

(1)伺服器(以下簡寫S)處於監聽狀態,客服端 C(以下簡寫C)傳送同步分節SYN J(以下簡寫SYN)給伺服器;

(2)S 接收到SYN J,然後給C傳送SYN K,同時捎帶SYN J的確認ACK J+1;

(3)C接收到ACK J+1 與SYN K後,確認可以與伺服器建立連線,並分配資源。同時給伺服器傳送ACK K+1;

三次握手伺服器端具體操作:

建立socket ->  bind socket與socket用於監聽 -> listen設定監聽套接字監聽    S已經處於監聽狀態,可以接受C發來的連線請求

三次握手客服端具體操作:

建立socket -> Connect操作建立連線

2、基本函式

int  socket(AF_INET,SOCK_STREAM,0); 用於建立socket,伺服器應提前建立一個socket用做監聽,監聽到有請求時,將用於對話的的socket交由其他socket處理

int bind(int socketid,(SA*)servaddr,sizeof(servaddr)); 套接字繫結到相應的socketid

int listen(int socket,LISTENQ); 使監聽套接字處於監聽模式,LISTENQ 是伺服器可以監聽的最大請求數

int connect(int socketfd,&servaddr,sizeof(servaddr)); 用於客服端請求建立與伺服器的連線。 客服端沒有必要制定socketfd,如果沒有核心會選一個臨時埠作為源埠

相關推薦

學習Unix程式設計[1]——TCP基本函式原理

轉載請註明t1234xy4原創:http://blog.csdn.net/t1234xy4/article/details/51892751 1、三次握手 TCP/IP 客服端與伺服器建立連線的過程被稱為三次握手。三次握手過程: (1)伺服器(以下簡寫S)處於監聽狀態,客服

OpenCV學習筆記(1)——resize函式實現影象大小歸

在影象處理過程中,有時需要把影象調整到同樣大小,便於處理,這時需要用到影象resize() 原函式void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, in

程式設計學習小結(1基本概念----c語言

---- 雲端計算、大資料、人工智慧,新技術層出不窮,摳碼愈久,無力感愈強。IT已經從個人英雄時代進化為一個需要高度協調配合的社會了。作為一個“搞計算機的”被別人問到:“那個XXX軟體,我們公司話好多錢買的,你能不能自己做一個?”,回答不能還要加各種解釋……;但是也有人問:“計算

機器學習總結(十):深度學習演算法(CNN,SAE,等)常見問題總結

(1)CNN 層級結構:輸入層->卷積層->激勵層->卷積層->激勵層。。。 資料輸入層(資料預處理):三種方法:去均值(即0均值化,CNN常用,訓練集所有畫素值減去均值,把

TCP/IP學習筆記(1)-----基本概念

使用 本機ip 分類 公司 idt intern xtend pen 不用 TCP/IP的起源   在全球各地,各種各樣的電腦運行著各自不同的操作系統一起為大家服務,這些電腦在表達同一種信息的時候所使用的方法是千差萬別。就好像聖經中上帝打亂了各地人的口音,讓他們無法合作

tcp/ip學習筆記(1)-基本概念

  為什麼會有tcp/ip 在世界上各地,各種各樣的電腦執行著各自不同的作業系統為大家服務,這些電腦在表達同一種資訊的時候所使用的方法是千差萬別。就好像聖經中上帝打亂了各地人的口音,讓他們無法合作一樣。計算機使用者意識到,計算機只是單兵作戰並不會發揮太大的作用。只有把它們聯合起來,電腦才會發

【原創】pygame學習筆記(1)----基本的線,矩形,圓形,弧形繪製

PYgame的內容 (1)這個module很有意思 (2)書本至少來源於《Python遊戲程式設計入門》 (3)官方權威說明:https://www.pygame.org/docs/   下面的嘗試把各種圖形在一個程式裡繪製 注意點: (1)特別注意,比如引

Spark(): 基本架構原理

通常當需要處理的資料量超過了單機尺度(比如我們的計算機有4GB的記憶體,而我們需要處理100GB以上的資料)這時我們可以選擇spark叢集進行計算,有時我們可能需要處理的資料量並不大,但是計算很複雜,需要大量的時間,這時我們也可以選擇利用spark叢集強大的計算資源,並行化地計算,其架構示意圖如下:Spark

OpenCV 2.4.9 學習筆記(1)—— 基本功能結構

一些關於OpenCV(2.4.9版本)的學習筆記,作為記錄,以免自己忘了。 安裝與配置   OpenCV的下載、安裝以及在各個平臺(Windows/Linux等)配置網上有很多的資料,自己就不用存了。需要或者遇到問題的時候再說。 基本模組結構   OpenCV(Open Source Computer

(六)Python函數語言程式設計1:高階函式 Higher-order-function

# 高階函式 Higher-order-function # 變數可以指向函式 # 以Python內建的求絕對值的函式abs()為例,呼叫該函式用以下程式碼: print(abs(-10)) # 10 print(abs) # <built-in f

Pandas學習筆記(1基本資料型別屬性

Pandas介紹 Python Data Analysis Library即Pandas是基於NumPy 的一種Python資料分析工具包,包含豐富的資料型別和便捷的操作方式。 基本資料型別 Series 對應Python中的列表和NumPy的一維陣

Spring Cloud與微服務學習總結(1)——Spring Cloud微服務入門

一、Spring Cloud是什麼鬼? Spring Cloud為開發者提供了快速建立一些常見的模式在分散式系統的工具(如配置管理、服務發現、斷路器、智慧路由、微代理,控制匯流排,一次性令牌,全球鎖,領

SLAM學習筆記(1基本概念

  SLAM (simultaneous localization and mapping),也稱為CML (Concurrent Mapping and Localization), 即時定位與地圖構建,或併發建圖與定位。 SLAM最早由Smith、Self和Cheeseman於1988年提出。   SL

斯坦福大學深度學習公開課cs231n學習筆記(1)softmax函式理解與應用

<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"

JS高級學習筆記(1)- 基本數據類型

java 數值 賦值 現在 lean evel image number com 原始數據 基本數據類型是一種即非對象也無方法的數據。JS中有6中基本類型:string、number、boolean、undefined、symbol。 多數情況下,基本類型直接代

機器學習框架ML.NET學習筆記【1基本概念

一、序言        微軟的機器學習框架於2018年5月出了0.1版本,2019年5月釋出1.0版本。期間各版本之間差異(包括名稱空間、方法等)還是比較大的,隨著1.0版釋出,應該是趨於穩定了。之前在園子裡也看到不少相關介紹的文章,對我的學習提供了不少幫助。由於目前

Linux學習第三節課-指令基本概念部分指令用法

版本 orm otto ip add 命令解釋 bashrc 取消 margin init 3 Linux學習第三節課十四、交互式接口交互式接口:啟動終端後,在終端設備附加一個交互式應用程序,要麽是圖形化接口GUI,要麽是命令行接口CLI。十五、Shell相關概念1.She

java Socket程式設計TCP基本原理

通訊原理: 1.伺服器程式建立一個ServerSocket,呼叫accept方法等待客戶機來連線。 2.客戶端程式建立一個Socket,請求與伺服器建立連線。 3.伺服器接收客戶機的連線請求,同時建立一個新的Socket與客戶端建立連線。伺服器繼續等待新的請求。 關鍵類: ServerS

linux網路程式設計TCP狀態轉換埠複用

(1)TCP狀態轉換圖               其中圖中分為三種狀態:實線代表的主動發起連線,虛線代表的被動發起連線,細實線代表的可以雙向發起連線的狀態。 主動發起連線方狀態變化:1)主動發起連線的一方傳送SYN標誌位,進入SYN_SENT狀態,等待接收被髮起連線方

嵌入式linux網路程式設計TCP、IP協議原理,wireshark抓包工具,乙太網頭(Ethernet header),IP頭,TCP頭,三次握手,四次握手,UDP頭

文章目錄 1,wireshark抓包工具 1.1,wireshark安裝 1.2,wireshark啟動 1.2.1,出現錯誤警告 1.2.2,解決方案 2,常用除錯測試工具 3,TCP