udp data(sendmsg 한거 수신할때...?) 수신에 대한 질문 입니다.
글쓴이: air74 / 작성시간: 월, 2004/12/13 - 4:04오후
sendmsg 를 이용하여 두개의 iovector 를 전송을 하였는데 ..
recvfrom 이나 기타 udp data 수신 api 를 이용하여 수신 한 다음에 iovector 를 어떻게 구분 하는지 모르겠습니다. 구분에서 iovector[0] 부분을 sn_msg_header type 으로 casting 해야 하는데. 쩝. 그럼 여러 고수님들의 조언 바랍니다.
/* 스트럭쳐 정의 부분 */ struct sn_msg_header { enum sn_msg_header_type type; u_int flags; u_hyper id; u_int len; u_hyper cli_id; struct sockaddr_in srcaddr; struct sockaddr_in desaddr; u_int method; u_int cls; }; typedef struct sn_msg_header sn_msg_header; struct sn_msg_message { int magic; sn_msg_header header; int iov_count; struct iovec iovector[2]; sn_msg_message *next; }; /* sendmsg 를 이용하여 두개의 iovector로 전송하는 부분 */ h->request->iovector[0].iov_base = (void *)(h->request); h->request->iovector[0].iov_len = sizeof(sn_msg_message); h->request->iovector[1].iov_base = (void *)(data_in); h->request->iovector[0].iov_len = len; msghdr.msg_iov = h->reply->iovector; msghdr.msg_iovlen = h->reply->iov_count; if (-1 == sendmsg(sn_xudp.fd, &msghdr, MSG_DONTWAIT)) { perror("xudp_send_reply"); } /* 수신 하는 부분 (iovector[0] 부분을 sn_msg_header 로 캐스팅 해야 함 */ recvfrom( ... buffer...){ -> 여기서 질문 ?? iovector[0] , [1] 과 구분을 하여 -> iovector[0] 부분을 sn_msg_header 타입으로 casting 해야 하는데 어떤식을 해줘야 할지 모르겠습니다. }
Forums:
댓글 달기