一个SOCKET的错误
在LINUX环境下
这是什么错误:bind erro: Socket operation on non-socket
源码: 1 #include <stdio.h>
2 #include <string.h>
3 #include <unistd.h>
4 #include <sys/types.h>
5 #include <sys/socket.h>
6 #include <netinet/in.h>
7 #include <arpa/inet.h>
8
9 #define PORT 5200
10 #define CONNUM 2
12 main()
13 {
14 int listenfd,connectfd;
15 int opt=SO_REUSEADDR;
1 #include <stdio.h>
2 #include <string.h>
3 #include <unistd.h>
4 #include <sys/types.h>
5 #include <sys/socket.h>
6 #include <netinet/in.h>
7 #include <arpa/inet.h>
8
9 #define PORT 1111
10 #define CONNUM 2
11
12 main()
13 {
14 int listenfd,connectfd;
15 /*int opt=SO_REUSEADDR;
16 */
17 struct sockaddr_in server;
18 struct sockaddr_in client;
19 int sin_size;
20
21 /* create tcp socket*/
22 if ((listenfd = socket(AF_INET,SOCK_STREAM,0) == -1))
23 {
24 perror("creating socket failed!");
25 exit(1);
26 }
27
28 /*setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
29 */
30 bzero(&server,sizeof(server));
31 server.sin_family=AF_INET;
32 server.sin_port =htons(PORT);
33 server.sin_addr.s_addr=INADDR_ANY;
34
35 if(bind(listenfd,(struct sockaddr*)&server,sizeof(struct sockaddr))==-1)
36 {
37 perror("bind erro");
38 exit(1);
39 }
40
41 if(listen(listenfd,CONNUM)==-1)
42 {
43 perror("listen error!");
44 exit(1);
45 }
46
47 sin_size=sizeof(struct sockaddr_in);
48 if((connectfd=accept(listenfd,(struct sockaddr*)&client,&sin_size))==-1)
49 {
50 perror("accept error\n");
51 exit(1);
52 }
53
54 printf("connection from %s\n",inet_ntoa(client.sin_addr));
55 send(connectfd,"welcome to server\n",22,0);
56 close(connectfd);
57 close(listenfd);
58 }
59
60
61
62