Я проверил свой код, но я не знаю, почему программа не может связать сокет. Я перепробовал много ip и портов (даже 127.0.0.1), но он все еще не работает ... Вот код, который я использую:
//error message
void error (const char *msg)
{
perror(msg);
exit(1);
}
int main ()
{
int sock, cli_sock, portno;
char buffer[1024];
char response[18432];
struct sockaddr_in serv_addr, cli_addr;
socklen_t cli_len;
//creating socket
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock < 0)
error("Error opening socket");
bzero ((char *) &serv_addr, sizeof(serv_addr));
//giving port number
portno = 50005;
//giving ip address
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
serv_addr.sin_port = htons(portno);
//bind socket
if(bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) != 0)
error("Binding failed.");
//listen
listen(sock, 5);
cli_len = sizeof(cli_addr);
//accept
cli_sock = accept(sock, (struct sockaddr *) &cli_addr, &cli_len);
if(cli_sock != 0)
error("Error on accepting");
}
(Это просто часть сокета сервера код и просто для получения дополнительной информации, моя версия клиента для Windows, а версия моего сервера для Linux)
Это мой вывод при запуске программы:
Binding failed.: Cannot assign requested address