"Hello World"를 클라이언트에게 다시 보내는 매우 간단한 서버 프로그램을 만들었습니다. 텔넷을 사용하여 서버 (로컬 호스트)에 연결 했으므로 제대로 작동합니다. 이제는 인터넷을 통해 실행하고 작동하지 않으려 고합니다. 내 공용 IP 주소 (구글 검색)에 바인딩 해봤지만 작동하지 않습니다.`server_socket = socket (AF_INET, SOCK_STREAM, 0);C 언어로 작성된 TCP 서버가 인터넷에서 작동하지 않습니다.
serverAddr.sin_family = AF_INET;
serverAddr.sin_port= htons(7892);
serverAddr.sin_addr.s_addr = inet_addr("192.168.43.241");//htonl(INADDR_ANY);//INADDR_ANY;//inet_addr("157.48.97.106");
memset(serverAddr.sin_zero,'\0',sizeof serverAddr.sin_zero);
bind(server_socket, (struct sockaddr *)&serverAddr,sizeof(serverAddr));
if(listen(server_socket,5)==0)
printf("listening\n");
addr_size=sizeof client_addr;
printf("IP address is: %s\n", inet_ntoa(serverAddr.sin_addr));
while(1)
{
client_socket= accept(server_socket,(struct sockaddr *)&client_addr,&addr_size);
printf("Waiting\n");
printf("client_socket %d\n",client_socket);
int pid=fork();
if(pid>0)
{
printf("PID:%d\n",pid);
dup2(0,client_socket);
}
else
{
dup2(client_socket,0);
printf("%d %d\n",pid,client_socket);
send(client_socket,buffer,strlen(buffer),0);
printf("Message Sent\n");
shutdown(client_socket,0);
close(client_socket);
perror("CLOSE");
printf("Connection Closed\n");
exit(0);
}
}`
OP는 라우팅 할 수없는 주소 인 192.168.43.241에 바인딩됩니다. 따라서 OP에서 방화벽 문제가 발생할 수 있다는 귀하의 관찰이 맞을 것입니다. OP에 라우팅 할 수없는 IP 주소가 무엇인지 설명 할 수 있습니까? –
사실 저는 소켓 프로그래밍 (네트워크 프로그래밍)에서 초보자입니다. 192.168.43.241은 Google에서 검색 한 공개 사이트입니다. –