BSDSocket程式設計之TCP

2021-09-08 23:48:19 字數 2298 閱讀 6560

tcpclient

1

/*tcp/ip應用程式設計介面(api)*/2

/*3*客戶端的工作流程:首先呼叫socket函式建立乙個socket,然後呼叫bind函式

4*將其與本機位址以及乙個本地埠號繫結,請求連線伺服器,通過新的socket

5*向客戶端傳送字串" hi,i am client!"。最後關閉該socket。6*/

7 #include

8 #include

9 #include

10 #include

11 #include

12 #include

13 #includein.h>

1415

int main()

16 30

/*初始化客戶端位址

*/31 addrlen=sizeof(struct sockaddr_in);

32 bzero(&ser_addr,addrlen);

33 cli_addr.sin_family=af_inet;

34 cli_addr.sin_addr.s_addr=htonl(inaddr_any);

35 cli_addr.sin_port=0;

36if(bind(cli_sockfd,(struct sockaddr*)&cli_addr,addrlen)<0)

37

42/*

初始化伺服器位址

*/43 addrlen=sizeof(struct sockaddr_in);

44 bzero(&ser_addr,addrlen);

45 ser_addr.sin_family=af_inet;

46 ser_addr.sin_addr.s_addr=inet_addr(seraddr);

47 ser_addr.sin_port=htons(server_port);

48if(connect(cli_sockfd,(struct sockaddr*)&ser_addr,&addrlen)!=0)/*

請求連線

*/49

55 strcpy(msg,"

hi,i am client!

");56 send(sockfd,msg,sizeof(msg),0);/*

傳送資料

*/57 recv(sockfd,msg,max_msg_size,0); /*

接受資料

*/58 printf("

%s\n

",msg);/*

在螢幕上列印出來

*/59 close(cli_sockfd);

6061

return

0;62 }

tcpserver

/*

tcp/ip應用程式設計介面(api)

*//*

*伺服器的工作流程:首先呼叫socket函式建立乙個socket,然後呼叫bind函式將其與本機位址以及

*乙個本地埠號繫結,然後呼叫listen在相應的socket上*,當accpet接收到乙個連線服務請求時,

*將生成乙個新的socket。伺服器顯示該客戶機的ip位址,並通過新的socket向客戶端傳送字串

*" hi,i am server!"。最後關閉該socket。

*/#include

#include

#include

#include

#include

#include

#includein.h>

int main() /*

初始化伺服器位址

*/addrlen=sizeof(struct sockaddr_in);

bzero(&ser_addr,addrlen);

ser_addr.sin_family=af_inet;

ser_addr.sin_addr.s_addr=htonl(inaddr_any);

ser_addr.sin_port=htons(server_port);

if(bind(ser_sockfd,(struct sockaddr*)&ser_addr,sizeof(struct sockaddr_in))<0) /*

偵聽客戶端請求

*/if(listen(ser_sockfd,backlog)<0)

while(1)

else

}close(ser_sockfd);

}

BSDSocket程式設計之UDP

udpclient udp ip應用程式設計介面 api 從標準輸入裝置中取得字串,將字串傳送給伺服器端,並接收伺服器端返回的字 符串。最後關閉該socket。include include include include include include includeint getserverad...

網路程式設計之TCP程式設計

tcp程式設計中,如果要完成通訊,通訊雙方必須要建立socket,通過socket完成通訊。tcp通訊步驟 1 伺服器啟動serversocket作為通訊的server端,等待客戶端鏈入。2 客戶端建立socket作為通訊的client端 3 client端鏈入server端後建立可靠的 雙向的 持...

Linux C socket 程式設計之TCP

本文主要是,簡單實現tcp連線的兩個程式。本文編寫,假設讀者有socket 程式設計思想。熟悉c程式設計。服務端 include include include include 網際網路位址族 include include include toupper 小寫轉化為大寫 int port 8000...