socket多线程实现tcp server
发布日期:2021-05-08 02:50:07 浏览次数:11 分类:精选文章

本文共 1030 字,大约阅读时间需要 3 分钟。

#include
#include
#include
#include
#include
#include
#include
#include
#include
int InitSocket(){ int sockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1)return -1; struct sockaddr_in saddr; memset(&saddr,0,sizeof(saddr)); saddr.sin_family=AF_INET; saddr.sin_port=htons(6000); saddr.sin_addr.s_addr=inet_addr("127.0.0.1"); int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr)); if(res==-1)return -1; listen(sockfd,5); if(res==-1)return -1; return sockfd;}void*fun(void*arg){ int c=(int)arg; while(1) { char buff[128]={ 0}; if(recv(c,buff,127,0)<=0) { break; } printf("recv(%d)=%s\n",c,buff); send(c,"ok",2,0); } printf("a client is connected(%d)\n",c); close(c);}int main(){ struct sockaddr_in caddr; int sockfd=InitSocket(); assert(sockfd!=-1); while(1) { int len=sizeof(caddr); int c=accept(sockfd,(struct sockaddr*)&caddr,&len); if(c<0) { continue; } printf("accept c=%d\n",c); pthread_t id; pthread_create(&id,NULL,fun,(void*)c); } close(sockfd); exit(0);}
上一篇:Web服务器——C语言实现
下一篇:socket网络编程——TCP servers & TCP client

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月19日 00时10分05秒