0
我的C客戶端可以在本地連接到我的服務器,但是當我嘗試從遠程計算機進行連接時,它不會連接,它會到達「錯誤連接失敗」。C客戶端只能連接到本地主機。
我可以從遠程機器telnet到服務器。
char* user_IP;
printf("Please enter an IP Address\n");
731
732 scanf(" %s", user_IP);
733 /*while (isdigit(IP) && IP>0) // has some isues
734 {
735 printf("Please enter an IP Address\n");
736
737 scanf(" %s", &IP);
738 }*/
739 play_num=2;
740 IP=atoi(user_IP);
741
742
743 if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
744 {
745 printf("\n Error : Could not create socket \n");
746 return 1;
747 }
748
749 memset(&serv_addr,0,sizeof(serv_addr));
750 serv_addr.sin_family = AF_INET;
751 serv_addr.sin_port = htons(5001);
752
753 if(connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_a\
ddr)) < 0)
754 {
755 printf("\n Error : Connect Failed \n");
756 return 1;
757 }
'你使用之前user_IP'不指向內存'scanf'。這將明顯崩潰。 – zneak
你似乎沒有在任何地方使用'IP'變量,並且你已經清零了'serv_addr',所以'serv_addr.sin_addr'爲零。另外,'atoi'不是解析IP地址字符串的正確方法;它解析整數;請參閱'inet_aton'。 – TypeIA
那是它不知道我錯過了什麼簡單的感謝! – burblebee