TCP的多個客戶端連線伺服器

2021-07-24 20:35:53 字數 1912 閱讀 9536

通過父子程序實現tcp的多個客戶端連線伺服器

tcp_sever_fork.c

#include #include #include #include #include #include #include #define port 3333

int main()

//伺服器填充sockaddr結構

bzero(&server_addr, addrinlen);

server_addr.sin_family = af_inet;

//server_addr.sin_addr.s_addr = htonl(inaddr_any);//inaddr_any表示可以接收任意ip位址的資料,即繫結所有的ip

server_addr.sin_addr.s_addr = inet_addr("192.168.1.222");//用於繫結到乙個固定的ip,inet_addr用於把數字加格式的ip轉化為整形ip

server_addr.sin_port = htons(port);

//繫結socket到ip位址

if(bind(sockfd, (struct sockaddr *)&server_addr, addrlen) < 0)

//設定允許連線的最大客戶端數目

if(listen(sockfd, 5) < 0)

while(1)

if(fork() == 0)

buf[recvbytes] = '\0';

printf("buf is %s\n", buf);

close(sockfd);

close(sock_fd);

exit(0);

} else

}//關閉

close(sockfd);

return 0;

}

tcp_client_fork.c

#include #include #include #include #include #include #include #define port 3333

int main()

//客戶端程式填充伺服器的資料

bzero(&server_addr, addrlen);//初始化,置0

server_addr.sin_family = af_inet;//ipv4

//server_addr.sin_addr.s_addr = htonl(inaddr_any);//

server_addr.sin_addr.s_addr = inet_addr("192.168.1.222");

server_addr.sin_port = htons(port);//將本機的short資料轉化為網路上的short資料——埠號

//伺服器發起連線請求

if(connect(sockfd, (struct sockaddr *)&server_addr, addrlen) < 0)

//while(1)

////write(sockfd, buf, strlen(buf));

#if 0

memset(buf1, 0, sizeof(buf1));

if(read(sockfd, buf1, sizeof(buf1)) < 0)

printf("read is %s\n", buf1);

#endif

// }

//關閉套接字

close(sockfd);

return 0;

}

執行結果:

tcp 迴圈為多個客戶端伺服器

import socket def main 1.買個手機 建立套接字 socket tcp server socket socket.socket socket.af inet,socket.sock stream 2.插入手機卡 繫結本地資訊 bind tcp server socket.bin...

TCP伺服器 客戶端程式

server tcpserver.cpp檔案 include common initsock.h include cinitsock initsock 初始化winsock庫 int main 填充sockaddr in結構 sockaddr in sin sin.sin family af ine...

當心!TCP本機客戶端連線本機伺服器

上週,在我們進行效能測試的時候,發現了乙個問題。我們的伺服器上啟了乙個redis服務端,偵聽0.0.0.0的1234埠,同處在本機的另外乙個程序會頻繁發起到該服務端的短連線,結果導致了兩個問題 1.大量的time wait狀態的連線 2.發起連線的程序的cpu佔用率接近100 這兩個結果嚴重影響了我...