该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
server已经运行,参考贴吧另一篇帖子运行nc localhost 8888没有问题,./client localhost 8888就出错Connection refused, 请问是哪里写的不对嘛?
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9
10 int main(int argc, char *argv[])
11 {
12 int sockfd;
13 char buffer[1024];
14 struct sockaddr_in server_addr;
15 struct hostent *host;
16 int portnumber, nbytes;
17
18 if (argc != 3){
19 fprintf(stderr, "Usage: %s hostname portnumber \n", argv[0]);
20 exit(1);
21 }
22 if((host = gethostbyname(argv[1])) == NULL){
23 fprintf(stderr, "Get hostname error.\n");
24 exit(1);
25 }
26 if ((portnumber == atoi(argv[2])) < 0 || portnumber < 0){
27 fprintf(stderr, "Please input right portnumber\n");
28 exit(1);
29 }
30
31 if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){
32 fprintf(stderr, "Socket Error: %s \n\a", strerror(errno));
33 exit(1);
34 }
35
36 bzero(&server_addr, sizeof(server_addr));
37 server_addr.sin_family = AF_INET;
38 server_addr.sin_port = htons(portnumber);
39 server_addr.sin_addr = *((struct in_addr *)host->h_addr);
40
41 if(connect(sockfd, (struct sockaddr *)(&server_addr), sizeof(struct sockaddr)) == -1){
42 fprintf(stderr, "Connect error: %s\n", strerror(errno));
43 exit(1);
44 }
45
46 if((nbytes = read(sockfd, buffer, 1024)) == -1){
47 fprintf(stderr, "Read error: %s\n", strerror(errno));
48 exit(1);
49 }
50
51 buffer[nbytes] = *\0*;
52 printf("Received message: %s\n", buffer);
53
54 close(sockfd);
55 exit(0);
56 }
57
58