linux網路程式設計入門

2021-08-22 01:30:15 字數 1770 閱讀 9259

服務端** server.c

#include

#include

#include

#include

#include

#include

#define portnum 3333 //隨便定義乙個埠

int main()

設定要繫結的位址,對server_addr初始化

bzero(&server_addr,sizeof(struct sockaddr_in));//全部成員清0

server_addr.sin_family = af_inet;

server_addr.sin_port = htons( portnum);//轉換成網路位元組序

server_addr.sin_addr.s_addr = htonl( inaddr_any);//轉換成網路位元組序

繫結位址

bind( sockfd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr) );

//3. 監聽埠

listen(sockfd, 5);

while(1)

close(sockfd);

return 0;

}客戶端** client.c

#include

#include

#include

#include

#include

#include

#define portnum 3333 //要與之建立連線的伺服器端口號

int main()

設定連線的伺服器的位址

bzero(&server_addr,sizeof(struct sockaddr_in));//全部成員清0

server_addr.sin_family = af_inet;

server_addr.sin_port = htons( portnum);//轉換成網路位元組序

server_addr.sin_addr.s_addr =  inet_addr("10.2.10.26");//將伺服器位址寫死,設定成虛擬機器位址。inrt_addr轉換得到的是網路位元組序位址

連線伺服器

if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr)) == -1)

//3. 傳送資料到伺服器

printf("please input char:\n");

fgets(buffer, 128, stdin); //從標準輸入拿到字元,存入buff

send(sockfd, buffer,strlen(buffer), 0);

//4 關閉連線

close(sockfd);

return 0;

}埠號一般不用修改,

客戶端設定連線的伺服器的位址時,需要設定為自己的位址

編寫makefile檔案

all:server client

server:server.c

gcc $^ -o $@

client:client.c

gcc $^ -o $@

注意命令要以tab鍵開頭

執行make all  ,進行編譯

開啟兩個命令視窗,乙個執行伺服器端    ./server         另乙個執行客戶端     ./client  localhost    

客戶端提示輸入內容

伺服器端提示連線成功,輸出客戶端傳送過來的內容

Linux網路程式設計入門 2

linux網路程式設計 3.伺服器和客戶機的資訊函式 這一章我們來學習轉換和網路方面的資訊函式.3.1 位元組轉換函式 在網路上面有著許多態別的機器,這些機器在表示資料的位元組順序是不同的,比如i386晶元是低位元組在記憶體位址的低端,高位元組在高階,而alpha晶元卻相反.為了統一起來,在linu...

網路程式設計入門

網路程式設計本質上要做的事情就是交流,我們先來分析一下人與人交流,見上圖,我們發現人與人的通訊是分層結構的,這裡以乙個人對另乙個人說 hello world!為例。1 乙個人說了 hello world!後它就是乙個資訊,這個是資訊首先可以直接說出來,我們也可以使用暗號來代替。這就是說資訊可以選擇明...

vc網路程式設計入門

對於許多初學者來說,網路通訊程式的開發,普遍的乙個現象就是覺得難以入手。許多概念,諸如 同步 sync 非同步 async 阻塞 block 非阻塞 unblock 等,初學者往往迷惑不清,只知其所以而不知起所以然。同步方式指的是傳送方不等接收方響應,便接著發下個資料報的通訊方式 而非同步指傳送方發...