|
통신할때는 해당 랜카드의 특정 포트에 바인딩 하게 되는데 INADDR_ANY가 아니라
해당 랜카드에 할당된 IP가 세팅된 sockaddr_in 구조체를 바인딩 하시면 됩니다.
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
sockaddr_in addr 선언
addr->sin_addr.s_addr = 특정 랜카드 IP가 설정된 (sockaddr_in*)->sin_addr.s_addr;
::bind(소켓, (sockaddr*)&addr, sizeof(addr))
TCP의 경우 네트웍 설정 순서는 bind -> listen -> accept
물론 UDP의 경우도 바인딩해서 해당 랜카드를 지정해 주시면됩니다.
소켓 사용하는 코드는 윈속 관련 책자에 예제가 많이 있으니 참고하세요.
번외편 님이 쓰신 글 :
: 안녕하세요
: 시빌더 접한지 일년이 다되어가지만 여전히 삽질만 하고 있는 번외편입니다..
:
: 아직까지도 네트워크에 취약해 질문좀 드리겠습니다.
:
: 컴퓨터에 랜카드가 2개가 장착되어 있는데
:
: 인디나 소켓, 혹은 다른것도 상관없습니다.
:
: 꼭 컴포넌트가 아니라 WinAPI여도 상관없다는거지요.
:
: 를 이용해서 원하는 랜카드로 송 수신이 가능한지에 대해 질문드립니다.
:
: 랜카드 1번 2번이 있다면 route print에서의 Default Gateway의 우선순위가 랜카드 1번이 되어있어도
:
: 우선순위 상관없이 2번으로 통신을 할수 있는지를 알고 싶습니다.
:
: 위의 방법이 안된다면 다른 어떤 방법으로 가능한지에 대해서라도 알려주셨으면 감사하겠습니다.
:
: 좋은 하루 되세요~
|