linux網路程式設計 tcp套接字

2021-10-02 11:35:48 字數 2339 閱讀 5407

1.標頭檔案

#include

#include

#include

#include

#include

2.接受傳送流程

服務端

#include #include #include #include #include #include int main()

;printf("hello,welcome to my server !\r\n");

/* 建立tcp 連線的套接字*/

sfp = socket(af_inet, sock_stream, 0);

if(-1 == sfp)

printf("socket ok !\r\n");

/* 變數s_add 清零*/

bzero(&s_add,sizeof(struct sockaddr_in));

s_add.sin_family=af_inet;

s_add.sin_addr.s_addr=htonl(inaddr_any);

s_add.sin_port=htons(portnum);

/* 繫結s_add 到套接字sfp 上*/

if(-1 == bind(sfp,(struct sockaddr *)(&s_add), sizeof(struct sockaddr)))

printf("bind ok !\r\n");

/*監聽函式,靜聽客戶端的連線請求*/

if(-1 == listen(sfp,5))

printf("listen ok\r\n");

sin_size = sizeof(struct sockaddr_in);

/* 接受連線請求*/

nfp = accept(sfp, (struct sockaddr *)(&c_add), &sin_size);

if(-1 == nfp)

printf("accept ok!\r\nserver start get connect from %#x : %#x\r\n",

ntohl(c_add.sin_addr.s_addr), ntohs(c_add.sin_port));

while(1)

/* 關閉socket 連線*/

close(nfp);

/* 關閉socket 連線*/

close(sfp);

return 0;

}

客戶端:

#include #include #include #include #include int main(int argc, char **ar**)

;struct sockaddr_in s_add, c_add;

unsigned short portnum = 0x8888;

printf("hello,welcome to client!\r\n");

if(argc != 2)

/* 建立乙個tcp 連線的socket */

cfd = socket(af_inet, sock_stream, 0);

if(-1 == cfd)

printf("socket ok !\r\n");

/* 變數s_add 清零*/

bzero(&s_add,sizeof(struct sockaddr_in));

s_add.sin_family=af_inet;

s_add.sin_addr.s_addr= inet_addr(ar**[1]);

s_add.sin_port=htons(portnum);

printf("s_addr = %#x ,port : %#x\r\n",s_add.sin_addr.s_addr,s_add.sin_port);

/* 連線伺服器函式*/

if(-1 == connect(cfd,(struct sockaddr *)(&s_add), sizeof(struct sockaddr)))

printf("connect ok !\r\n");

while(1)

printf("read ok\r\nrec:\r\n");

buffer[recbyte]='\0';

printf("%s\r\n",buffer);

}/* 關閉套接字*/

close(cfd);

return 0;

}

Linux網路程式設計(二) 基本TCP套接字程式設計

為了執行網路io,乙個程序必須先呼叫socket函式,指定期望通訊的協議型別 1 include2 int socket int family,int type,int protocol 3 返回 成功返回非負描述符,若出錯返回 1family引數的值 af inet ipv4協議 af inet6...

TCP套接字程式設計

網路程式設計又稱為套接字程式設計,為了與遠端計算機進行資料傳輸,需要連線到網際網路,而程式設計中的 套接字 就是用來連線該網路的工具。它本身具有連線的含義,還可以表示為兩台計算機之間的網路連線。4.呼叫accept函式受理連線請求 基於tcp的服務端 客戶端 tcp伺服器端預設函式呼叫順序 sock...

TCP套接字程式設計

對於socket不理解的可以檢視 c語言通過socket程式設計實現tcp通訊,linux socket程式設計 socket詳解 先看看程式效果圖 提示如果伺服器,直接通過ctrl z關閉,這樣程式占用的位址不會釋放,需要以下操作 1.ps 檢視程序 2.kill 9 程式pid 強制殺死程序 服...