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
반응형