udp 소켓으로 구조체를 전달받을때에..

facered79의 이미지

if((byte = recvfrom(msg_sock, buf_rbmb, sizeof(buf_rbmb), 0, (struct sockaddr *)&cli_addr, (socklen_t *)&c_len)) < 0)
    {
      cout << " recvfrom() - recv_msg #3 " << endl;
      exit(1);
    }

위 소스는 udp 소켓 서버가 클라이언트에서 올라오는 메시지를

전달 받는 부분입니다.

buf_rbmb 가 구조체로 선언된 변수입니다

클라이언트에서 buf_rbmb와 같은 타입의 구조체에 값을 넣어

보내주는데요..

이상황에서 컴파일을 하면

cannot convert `buf_rbmb' from type `Type_ipc_msg'
to type `void*'

위와 같은 메시지가 나옵니다..

구조체 전달 받는 방법을 알고 싶습니다..

kslee80의 이미지

recvfrom() 의 두번째 인자는 void * 형입니다. 즉 Address 가 전달되어야 합니다.
두번째 인자와 세번째 인자를 봤을때, buf_rbmb 라는 변수는 구조체인듯 싶은데,
그런 경우에 두번째 인자를 &buf_rbmb 같은 형식으로 줘야겠죠.