为了账号安全,请及时绑定邮箱和手机立即绑定

作业社区

探索学习新天地,共享知识资源!

0 提交作业
0 布置作业
0 满分作业
得分 0
学习任务

北城半夏4806197 的学生作业:

老师,我这里有一个报错,不明白为什么,求解答! 我查了一下说是ip被占用,但我尝试了还是没解决 #include #include #include #include #include /* See NOTES */ #include #include #include #define BACKLOG 10 //listen长度 int main(int argc, char const *argv[]) { int sfd,ret,cfd; struct sockaddr_in svr_addr,cli_addr; socklen_t len = sizeof(struct sockaddr_in); ssize_t rbytes = 0,sbytes=0; char buffer[1024] = {0}; if(argc < 3) { fprintf(stderr,"Usage : %s ip port!\n",argv[0]); exit(EXIT_FAILURE); } sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1) { perror("[ERROR] socket():"); exit(EXIT_FAILURE); } bzero(&svr_addr,sizeof(svr_addr)); //清零 svr_addr.sin_family = AF_INET; svr_addr.sin_port = htons(atoi(argv[2])); svr_addr.sin_addr.s_addr = inet_addr(argv[1]); //绑定ip地址与端口号 ret = bind(sfd,(const struct sockaddr *)&svr_addr, sizeof(struct sockaddr_in)); if (ret == -1) { perror("[ERROR] bind()"); exit(EXIT_FAILURE); } //设置套接字为监听状态,建立监听队列 ret = listen(sfd,BACKLOG); if(ret == -1) { perror("[ERROR] listen():"); exit(EXIT_FAILURE); } //建立连接,并产生新的客户端套接字cfd用于数据收发 cfd = accept(sfd,(struct sockaddr *)&cli_addr,&len); if(cfd == -1) { perror("[ERROR] accept():"); exit(EXIT_FAILURE); } printf("ip : %s , port : %d\n",inet_ntoa(cli_addr.sin_addr),ntohs(cli_addr.sin_port)); //客户端从键盘接收发送数据 for(;;) { //从客户端发送数据 rbytes = recv(cfd,buffer,sizeof(buffer),0); if(rbytes == -1) { perror("[ERROR] recv():"); exit(EXIT_FAILURE); } else if(rbytes == 0) { printf("The server hsa been shut down.\n"); } else if(rbytes > 0) { memset(buffer, 0, sizeof(buffer)); sbytes = send(cfd,buffer,sizeof(buffer),0); if(sbytes == -1) { perror("[ERROR] send():"); exit(EXIT_FAILURE); } printf("Receive: %s\n", buffer); if(strncmp(buffer,"quit",4) == 0) break; } } close(cfd); close(sfd); return 0; } 【图片】【图片】

得分 100
学习任务

北城半夏4806197 的学生作业:

#include #include #include #include #include /* See NOTES */ #include #include #include #define BACKLOG 10 //listen长度 int main(int argc, char const *argv[]) { int sfd,ret,cfd; struct sockaddr_in svr_addr,cli_addr; socklen_t len = sizeof(struct sockaddr_in); ssize_t rbytes = 0,sbytes=0; char buffer[1024] = {0}; if(argc < 3) { fprintf(stderr,"Usage : %s ip port!\n",argv[0]); exit(EXIT_FAILURE); } sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1) { perror("[ERROR] socket():"); exit(EXIT_FAILURE); } bzero(&svr_addr,sizeof(svr_addr)); //清零 svr_addr.sin_family = AF_INET; svr_addr.sin_port = htons(atoi(argv[2])); svr_addr.sin_addr.s_addr = inet_addr(argv[1]); //绑定ip地址与端口号 ret = bind(sfd,(const struct sockaddr *)&svr_addr, sizeof(struct sockaddr_in)); if (ret == -1) { perror("[ERROR] bind()"); exit(EXIT_FAILURE); } //设置套接字为监听状态,建立监听队列 ret = listen(sfd,BACKLOG); if(ret == -1) { perror("[ERROR] listen():"); exit(EXIT_FAILURE); } //建立连接,并产生新的客户端套接字cfd用于数据收发 cfd = accept(sfd,(struct sockaddr *)&cli_addr,&len); if(cfd == -1) { perror("[ERROR] accept():"); exit(EXIT_FAILURE); } printf("ip : %s , port : %d\n",inet_ntoa(cli_addr.sin_addr),ntohs(cli_addr.sin_port)); //客户端从键盘接收发送数据 for(;;) { //从客户端发送数据 rbytes = recv(cfd,buffer,sizeof(buffer),0); if(rbytes == -1) { perror("[ERROR] recv():"); exit(EXIT_FAILURE); } else if(rbytes == 0) { printf("The server hsa been shut down.\n"); } else if(rbytes > 0) { memset(buffer, 0, sizeof(buffer)); sbytes = send(cfd,buffer,sizeof(buffer),0); if(sbytes == -1) { perror("[ERROR] send():"); exit(EXIT_FAILURE); } printf("Receive: %s\n", buffer); if(strncmp(buffer,"quit",4) == 0) break; } } close(cfd); close(sfd); return 0; }

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号