免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: samuelz
打印 上一主题 下一主题

socket绑定问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-03-29 14:40 |只看该作者

socket绑定问题

是不同的客户端来访问,就是说一个Client同这个Server建立完连接就释放了,其它的Client再来连接。这样让Server监听一次好像不行吧?

论坛徽章:
0
12 [报告]
发表于 2005-03-29 14:43 |只看该作者

socket绑定问题

.....
你看看我的程序
就是多客户的

论坛徽章:
0
13 [报告]
发表于 2005-03-29 14:50 |只看该作者

socket绑定问题

呵呵,原来你的想法这么奇怪……

论坛徽章:
0
14 [报告]
发表于 2005-03-30 11:15 |只看该作者

socket绑定问题

不好意思,见笑了。
以前对socket建立的过程理解有误。查了一下,用fork和select都可以实现一个server接受多个client的连接。就如同surfzsl写的函数了。
偶这个比较简单,增加fork之后就可以实现了。
       if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
           { perror(NULL); exit(2); }
           serv_addr.sin_family = AF_INET;
           serv_addr.sin_addr.s_addr = INADDR_ANY;
           serv_addr.sin_port = htons(TIME_PORT);
           bzero(&(serv_addr.sin_zero),;
           t=bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(struct sockaddr_in));
          if (t == -1) { printf("Bind not successful\n"; exit(0); }
           printf("bind was successful\n";
         listen(sockfd, 5);
         printf("listen was successful\n";
         for(;{
          len = sizeof(struct sockaddr_in);
         client_sockfd = accept(sockfd, (void *)&client_addr, &len);
         printf("connection made - client sockfd is %d\n",client_sockfd);
         printf("Request from %s port %d\n",inet_ntoa(client_addr.sin_addr),
         ntohs(client_addr.sin_port));
         if((PID=fork())==-1){
                 close(client_sockfd);
                 continue;
         }else if(PID>;0){
                 close(client_sockfd);
                 continue;
         }
         buflen = read(client_sockfd,&buf,SIZE);
         write(1,buf, buflen);
         printf("\n";

         ........................

        close(client_sockfd);
        exit(0);
               }

}

另外,关于Time_Wait,有个网页说的挺清楚的,可以去看一下
http://www.phpx.com/cma2029.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP