728x90
현재 PC에 다중의 NIC가 꼽혀 있는 환경에서
특정 NIC로 Socket Connect를 하고 싶다면
Socket Connect 이전에 Bind로 Socket을 설정하면 됩니다
간단한 예시입니다
SOCKET SocketConnect()
{
SOCKET sockRet = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(sockRet == INVALID_SOCKET)
{
return INVALID_SOCKET;
}
SOCKADDR_IN saBind;
memset(&saBind, 0, sizeof(saBind));
saBind.sin_family = AF_INET;
saBind.sin_addr.s_addr = {특정 NIC IP};
saBind.sin_port = ntohs(0);
if(bind(sockRet, (SOCKADDR*)&saBind, sizeof(saBind)) == SOCKET_ERROR)
{
closesocket(sockRet);
return INVALID_SOCKET;
}
SOCKADDR_IN sa;
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = {서버 IP};
sa.sin_port = htons({서버 PORT});
if(connect(sockRet, (SOCKADDR*)&sa, sizeof(sa)) == FALSE)
{
return INVALID_SOCKET;
}
return sockRet;
}
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형
'Application > MFC' 카테고리의 다른 글
[MFC] 파일 생성 (CreateFile) (0) | 2024.11.24 |
---|---|
[MFC] 스피커 설정 (Mute, Volume Up / Down) (0) | 2024.11.21 |
[MFC] 통신 프로그램 기초 (Socket 함수 사용) (0) | 2024.11.16 |
[MFC] 클립보드 활용 (Clipboard) (0) | 2024.11.13 |
[MFC] File Read / Write Overlapped 사용법 (0) | 2024.08.08 |