tcp執行緒實現

2021-07-25 05:34:43 字數 1281 閱讀 6860

#include

#include

#include

#include

#include

#include

#include

#include

#define portnumber 3333

void * read_msg(void *arg)

}void * write_msg(void * arg)

}int main(int argc, char *argv)

/* 伺服器端填充 sockaddr結構 */

bzero(&server_addr,sizeof(struct sockaddr_in)); // 初始化,置0

server_addr.sin_family=af_inet;                 // internet

server_addr.sin_addr.s_addr=htonl(inaddr_any);  // (將本機器上的long資料轉化為網路上的long資料)和任何主機通訊  //inaddr_any 表示可以接收任意ip位址的資料,即繫結到所有的ip

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

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

/* **sockfd描述符到ip位址 */

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

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

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

while(1)

fprintf(stderr,"server get connection from %s\n",inet_ntoa(client_addr.sin_addr)); // 將網路位址轉換成.字串

pthread_create(&id,null,(void *)read_msg,(void *)&new_fd);

pthread_create(&id,null,(void *)write_msg,(void *)&new_fd);

}/* 結束通訊 */

close(sockfd);

exit(0);

}

以執行緒實現TCP併發伺服器

對伺服器來說,以執行緒為客戶服務的方式有三種 1.每來乙個客戶就為其建立乙個執行緒 3.建立乙個執行緒池,在main中accept 對於第一種 int main int argc,char const argv return 0 void doit void arg 對於第二種 typedef st...

TCP 多執行緒 (python)

author han zhang date 2018 12 23 10 21 file server.py ide pycharm import socket,threading def c thread s client,addr print addr,成功連線 列印連線者位址資訊 while t...

TCP多執行緒聊天

1 from socket import 2from threading import thread 3 sockets 4def main 5 建立server socket套接字物件 6 server socket socket af inet,sock stream 7 繫結埠 8 serve...