扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:章永阳 来源:yesky 2007年10月30日
关键字: Linux
#include #include #include #include #include void main() { int listenfd,clifd; long pid; struct sockaddr_in myaddr,cliaddr; int ret; int len; listenfd=socket(AF_INET,SOCK_STREAM,0); if (listenfd<0) { perror("socket error"); exit(-1); } myaddr.sin_family=AF_INET; myaddr.sin_addr.s_addr=htonl(INADDR_ANY); myaddr.sin_port=htons(8888); ret=bind(listenfd,(struct sockaddr *)&myaddr,sizeof(myaddr)); if (ret<0) { perror("bind error"); exit(-1); } listen(listenfd,10); len=sizeof(struct sockaddr); while(1) { clifd=accept(listenfd,(struct sockaddr*)&cliaddr,&len); /*注意accept的第三个参数也是地址*/ if(clifd==-1) { perror("accept error"); continue; } printf("connect from %s %d\n",inet_ntoa(cliaddr.sin_addr.s_addr),ntohs(cliaddr.sin_port)); switch(pid=fork()) { case 0: /*子进程*/ close(listenfd); ;/*子进程进行其他的操作*/ close(clifd); exit(0); break; case -1: perror("fork error"); break; default:/*父进程*/ close(clifd); break; } } } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者