sendto
에서 : 내가 보내는 소켓의 소켓 기술자가이 통화에서주소에서 소켓 설명자 가져 오기?
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
, 그것은 불가능합니다 const struct sockaddr *dest_addr
sendto
에서 : 내가 보내는 소켓의 소켓 기술자가이 통화에서주소에서 소켓 설명자 가져 오기?
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);
, 그것은 불가능합니다 const struct sockaddr *dest_addr
호에서 수신기의 소켓 기술자를 얻을 수있는 방법이있다. 검색을 요청한 소켓 디스크립터는 완전히 다른 머신에서 실행중인 다른 프로세스에있을 수있는 모든 수신기의 소켓 디스크립터이다.
또한, 나는 그 소켓 디스크립터를 얻음으로써 얻을 수있는 것에 관해서는 이유를 생각할 수 없다.
당신이 요구하는 것은 공식적으로 의미가 없습니다.
수신자의 소켓 설명자가 수신 과정에 있습니다. 전송 프로세스에서는 사용할 수 없으며 사용 중이 지 않은 경우에도 수신 프로세스에서 그 값만 의미가 있으므로 사용하지 않아도됩니다.
UDP IP 주소 : 포트가 단일 소켓에 매핑되지 않을 수 있습니다.
발신자와 수신자의 정보를 UDP 통신에 매핑하는 이유는 다음과 같습니다. – Bionix1441
보낸 사람과받는 사람 사이에 정보를 매핑하려면 소켓 설명자,받는 사람 주소 및 포트를 보내는 세 개의 튜플을 사용할 수 있습니다. 그걸로 충분할거야 .. 맞지? – Jay
어쨌든, 당신은 수신자의 소켓 디스크립터를 얻는 아이디어를 포기해야한다. 그것은 다른 프로세스에서 왔고 전혀 다른 의미를 가질 수있다. Ex의 경우 : 프로세스가 UDP 데이터 그램을 2 개의 프로세스로 전송하고 둘 다 소켓 설명자 값을 10으로받는다면 (예제) 여전히 매핑이 작동하지 않습니다. 맞습니까? – Jay