網路程式設計之沒有io多路復用

2021-10-23 14:20:53 字數 1665 閱讀 5068

網路程式設計
www.baidu.com 網域名稱(每個網域名稱都有對應的ip) 202.108.22.5

tcp 有連線的,可靠的,一定可以保證訊息可以傳達給對方,有三次握手

udp 沒有連線到 不可靠的 不能保證訊息一定能夠傳達給對方,不存在三次握手

利用套接字進行通訊:

伺服器有兩個套接字

乙個叫監聽套接字

乙個叫通訊套接字

客戶端只有乙個套接字

通訊套接字

伺服器:

bind()繫結ip,埠號(區分程序,電腦裡的哪乙個程序),網域名稱,網路型別

listen()監聽

accept() 建立連線會返回乙個通訊套接字(用於收發)

recv() 引數:通訊套接字

send() 引數:通訊套接字

客戶端:

建立通訊套接字

***ip位址區別網路端 埠號區別服務(程序)

主機是怎麼區分不同的網路服務呢?顯然不能只靠ip位址,因為ip位址與網路服務的關係是一對多,

實際上是通過:ip位址+埠號來區分不同的網路服務

伺服器一般都是通過埠號來識別的。

***點分十進位制——————32位的網路位元組序

規定就是要用32位的網路位元組序

網路型別:ipv4 ipv6

***32位的網路位元組序——點分十進位制

tcp/ip網路通訊協議,是internet最基本的協議,由網路層的ip協議和傳輸層的tcp協議組成。tcp/ip定義了電子裝置如何連入網際網路,以及

資料如何在特們之間傳輸的標準。協議採用了四層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。

通俗來說:tcp負責發現傳輸的問題,一有問題就發出訊號,要求重新傳輸,直到所有的資料安全正確的傳輸到目的地。

而ip是給網際網路的每一台電腦規定乙個位址。

網路中傳輸的資料必須按網路位元組序,即大端位元組序。

小端序:儲存資料是先存最低有效位 低序位元組儲存在低位址,inter amd採用的

#include

#include

#include

#include

#include

#include

#include

#include

#define port 6666

#define ip 「127.0.0.1」

int main()

printf(「建立通訊套接字成功\n」);

//2.填充核心結構體

memset(&ser_addr,0,sizeof(ser_addr));

ser_addr.sin_family = af_inet;

ser_addr.sin_port = htons(port);

ser_addr.sin_addr.s_addr = inet_addr(ip);

//3.建立連線

if((connect(ser_fd,(struct sockaddr *)&ser_addr,sizeof(ser_addr))) < 0)

printf(「連線成功\n」);

//4.資料收發

while(1)

//5.關閉套接字

close(ser_fd);

return 0;

}

《網路程式設計》I O 多路復用

在前面的文章中介紹了五種 i o 模型 i o 模型 這裡介紹 i o 模型中 i o 多路復用在 tcp 套接字程式設計中的使用。在 i o 多路復用中主要是 select 和 poll 函式的使用。該函式允許程序指示核心等待多個事件中的任何乙個發生,並只在乙個或多個事件發生或超過指定時間後才被喚...

UNIX網路程式設計 I O多路復用

目錄 unix下可用的5種i o模型 阻塞式i o模型 非阻塞式i o模型 i o復用模型 訊號驅動式i o模型 非同步i o模型 各種i o模型的比較 參考 阻塞式i o 非阻塞式i o i o復用 訊號驅動式i o sigio 非同步i o poxis的aio 系列函式 比如乙個輸入操作通常包含...

併發程式設計 網路IO模型 IO多路復用

網路io模型 一 網路io 輸入 recv recvfrom accept 阻塞io 輸出 send sendto sendall connect 會等待一段時間,但是卻是非阻塞io,因為是乙個主動的過程 二 網路io模型 跟socket有關 blocking io 阻塞io 平時用的 tcp ud...