소켓 프로그래밍에서 접속이 안되는 경우...

mg2000의 이미지

제가 간단한 서버/클라이언트 프로그램을 만들었는데요.

하나의 컴퓨터로 클라이언트에서 서버로 접속할때,

127.0.0.1로 접속을 하면 접속이 잘 되는데...

해당 컴퓨터의 IP로 접속하려고 하면 접속이 안되네요. ㅜ.ㅡ

방화벽이 문제인가 해서 방화벽을 껐는데도 안되는군요.

이런 경우에는 어떵 부분을 살펴봐야 할런지요?

ymir의 이미지

server 의 bind address (netstat -ln 으로도 확인 가능) ..
client 의 connect address ..
server 와 client 의 network 환경 (예를 들어 다른 service port 로 접속 되는지) ..
tcpdump 로 traffic 상태 확인..

위 정도로 확인해 볼 것 같군요

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

mg2000의 이미지

서버 클라이언트를 한 컴퓨터에서 돌리니, 상관없을것 같은데...

왜 127.0.0.1로 하면 되고, 자신의 IP로 하면 안되는지 이해가 안되는군요. ㅜ.ㅡ

ymir의 이미지

그렇다면 server 의 bind address 를 127.0.0.1 로 고정하신 모양이군요.
bind 하기 전에 server 주소를 그냥 INADDR_ANY 로 넣어보세요.
정확히는 htonl(INADDR_ANY) 해서..

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』