개발공부/네트워크
C++ Socket UDP - sendto , recvfrom 응용(class 전송)
수박 서리
2024. 2. 14. 17:37
UDP 통신을 이용하여 data를 통신하는 코드를 작업을 진행중에
일반적인 Char* buffer[buffet_size] 를 이용한 데이터 전송이 아닌 자신이 만든 class data를 전송 할 수 있어
기록을 위해 작성합니다.
https://learn.microsoft.com/ko-kr/windows/win32/api/winsock/nf-winsock-sendto
sendto 함수(winsock.h) - Win32 apps
sendto 함수(winsock.h)는 데이터를 특정 대상으로 보냅니다.
learn.microsoft.com
char SendBuf[1024];
int BufLen = 1024;
MSDN에는 sendto의 매개변수로 위에 변수들을 사용하지만 텍스트가 아닌 클래스(또는 struct) 데이타를 전송하고 수신하고 싶은 경우가 있을 것이다. 이런 경우에는 아래와 같이 하면 된다.
Class CExampleClass
{
public
int a;
double b;
}
int main{
//socket관련 생략 MSDN참조 할것
CExampleClass* pExampleClass = new CExampleClass();
sendto(m_Pop, (char*)& pExampleClass , sizeof( pExampleClass), 0, (SOCKADDR*)&Address, &AddressSize);
recvfrom(m_Pop, (char*)& pExampleClass , sizeof( pExampleClass), 0, (SOCKADDR*)&Address, &AddressSize);
}
이런 식으로 코드를 작성하면 텍스트뿐만 아니라 data도 UDP 송 수신이 가능하다.