Winsock을 사용하여 TCP 서버 응용 프로그램을 작성하고 있습니다. 내 서버가 실행될 머신과 클라이언트가 실행될 머신은 2 개의 NIC를 가지고 있습니다. 관련된 IP 주소는 다음과 같습니다여러 개의 NIC가 관련된 경우의 IP 주소
- 서버 NIC 1 : 192.168.132.14 < - 이것은 내가 바인딩 할 일이
- 서버 NIC 2 : 192.168.132.15
- 클라이언트 NIC 1 : 192.168.132.16
- 클라이언트 NIC 2 을 : 192.168.132.17
질문 1 : 내 청취 소켓을 바인딩 할 때 나는 INADDR_ANY를 사용하는 경우 내 서버 응용 프로그램에서 , 내 두 개의 IP 주소 중 어느 것이 사용됩니까? 나는 말할 것도없고 INADDR_ANY 대신에 inet_addr ("192.168.132.14")을 사용해야한다고 가정하는 것이 옳은가?
질문 2 : 나와 연결할 때 클라이언트가 사용하는 IP 주소를 어떻게 제어 할 수 있습니까? connect()를 호출하기 전에 간단히 bind()를 호출할까요? 나는 그가 어느 쪽의 주소 (아무도 말하지 않고)에서 연결하는 것을보아야한다.
INADDR_ANY는 두 NIC에 모두 바인딩되므로 다른 IP의 동일한 포트에 이미 수신중인 다른 소켓이 없으면 INADDR_ANY 소스를 사용할 수 있습니다. http : http : //www.cs.cmu.edu/~srini/15-441/F01.full/www/assignments/P2/htmlsim_split/node18.html – SupremeDud