Application/MFC
[MFC] 다중 NIC 중 특정 NIC로 Socket Connect
devsalix
2024. 11. 18. 11:36
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
반응형