主题 : Linux下网络编程select无法接收到数据的问题,请高手解决!! 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 79046
精华: 0
发帖: 57
金钱: 285 两
威望: 57 点
综合积分: 114 分
注册时间: 2012-09-28
最后登录: 2014-11-12
楼主  发表于: 2013-01-16 17:08

 Linux下网络编程select无法接收到数据的问题,请高手解决!!

程序执行结果:[root@FriendlyARM server]# /tcp_server_armreceive data:: Transport endpoint is not connected192.168.1.100 send:receive data:: Transport endpoint is not connected192.168.1.102 send:receive data:: Transport endpoint is not connected192.168.1.102 send:无法接收到数据下面是源码,无注释,如果您是高手一定能看懂...源码已上传#include<stdio.h>#include<stdlib.h>#include<errno.h>#include<string.h>#include<sys/types.h>#include<netinet/in.h>#include<sys/socket.h>#include<sys/select.h>#include<sys/time.h>#include<sys/wait.h>#include<unistd.h>
int main(void){ int socket_server,socket_client; struct sockaddr_in server_addr; struct sockaddr_in client_addr;  int serverPORT=5000; int BACKLOG=20; int addr_len=0; int maxfdp=0; int num=0;  fd_set fds; struct timeval timeout={2,0};  char buffer[256];  if((socket_server=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("create socket_server:"); exit(1); } server_addr.sin_family=AF_INET; server_addr.sin_port=htons(serverPORT); server_addr.sin_addr.s_addr=INADDR_ANY;  bzero(&(server_addr.sin_zero),8);  if(bind(socket_server,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1) { perror("bind:"); exit(1); }  if(listen(socket_server,BACKLOG)==-1) { perror("listen:"); exit(1); } while(1) { FD_ZERO(&fds); FD_SET(socket_server,&fds);  maxfdp=socket_server+1; switch(select(maxfdp,&fds,NULL,NULL,&timeout)) { case -1: break; case 0: break; default: if(FD_ISSET(socket_server,&fds)) { addr_len=sizeof(struct sockaddr); if((socket_client=accept(socket_server, (struct sockaddr*) &client_addr, &addr_len))<0) { perror("accept client:"); continue; } if((recv(socket_server,buffer,sizeof(buffer),0))<=0) { perror("receive data:"); } printf("%s send: %s\n",inet_ntoa(client_addr.sin_addr),buffer); } } } return 0;}

附件: tcp_server.rar (1 K) 下载次数:10
级别: 侠客
UID: 79046
精华: 0
发帖: 57
金钱: 285 两
威望: 57 点
综合积分: 114 分
注册时间: 2012-09-28
最后登录: 2014-11-12
1楼  发表于: 2013-01-16 17:10
实在不好意思,程序在上面乱了。已将源码上传,望能够得到您的帮助,不胜感激!!