This question has already been answered:
I make a network console toy for a course, if you connect via 127.0.0.1 or via local ip, then everything works, but when I try to connect a client server through an Internet ip (like 84.242.206.234), does the client not connect, if not? Server:
int sock, n, port = def_port; int; struct sockaddr_in servaddr; sock = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(port); servaddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)); printf("Порт: %d ожидаю подключения\n", ntohs(servaddr.sin_port)); listen(sock, 0); int tmp = sock; sock = accept(sock, (struct sockaddr *) NULL, NULL); Customer:
int sock, n, port = def_port; struct sockaddr_in servaddr; sock = socket(AF_INET, SOCK_STREAM, 0); char ip[100]; printf("Введите ip адрес: "); scanf("%s", ip); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(port); if(inet_aton(ip, &servaddr.sin_addr) == 0){ printf("Неправильный ip адрес\n"); return; } if(connect(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){ printf("Не удалось подключиться\n"); return; }