读书人

希望大家指点下为什么一直“accpet

发布时间: 2012-04-02 19:58:59 作者: rapoo

希望大家指点下,为什么一直“accpet error”,程序错在哪里?先谢谢了
1 #include<stdio.h>
2 #include<errno.h>
3 #include<sys/types.h>
4 #include<stdlib.h>
5 #include<string.h>
6 #include<netinet/in.h>
7 #include<sys/socket.h>
8
9 #define portnumber 3333
10
11
12 int main(int argc,char **argv)
13 {
14 int err,pid,sd,new_sd,connect_sd,s_bind,s_listen;
15 int sin_size,nbytes;
16 char s_buffer[1024];
17 char c_buffer[1024];
18
19 struct sockaddr_in server_addr,client_addr;
20 struct hostent *host;
21
22
23
24 sd=socket(AF_INET,SOCK_STREAM,0);
25 if(sd==-1) {
26 fprintf(stderr,"socket error\n",strerror(errno));
27 exit(1);
28 }
29
30 bzero(&server_addr,sizeof(struct sockaddr_in));
31 server_addr.sin_family=AF_INET;
32 server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
33 server_addr.sin_port=htons(portnumber);
34
35 s_bind=bind(sd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr));^M
36 if(s_bind==-1) {
37 fprintf(stderr,"bind error:\n",strerror(errno));
38 exit(1);
39 }
40
41
42 s_listen=listen(sd,5);
43 if(s_listen) {
44 fprintf(stderr,"listen error:\n",strerror(errno));
45 exit(1);
46 }
47
48 while(1) {
49 sin_size=sizeof(struct sockaddr);
50 new_sd=accept(sd,(struct sockaddr *)(&client_addr),&sin_size);
51
52
53 if(new_sd==-1) {
54 fprintf(stderr,"accept error :\n",strerror(errno));
55
56 continue;
57 }
58 if((pid=fork())==0) {
59 nbytes=read(new_sd,s_buffer,10);
60 if(nbytes==-1) {
61 fprintf(stderr,"read error\n",strerror(errno));
62 exit(1);
63 }
64 s_buffer[nbytes]='\0';
65 printf("recive:%s",s_buffer);
66 close(new_sd);
67 exit(0);
68 }
69 else {
70
71 close(sd);
72 }
73 }
74 return 0;
75 }
76
1,4


[解决办法]
描述一下题目呀,哪里的ACM

读书人网 >C语言

热点推荐