2016-12-06 63 views
-1

sendto從地址獲取套接字描述符?

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, 
       const struct sockaddr *dest_addr, socklen_t addrlen); 

從這個電話我發送socket的描述,有沒有辦法從const struct sockaddr *dest_addr

回答

1

號這是不可能得到接收機的socket描述符。您要求檢索的套接字描述符是接收器的套接字描述符,對於我們所知道的所有信息可能位於運行在完全不同機器中的某個其他進程中。

此外,我想不出通過獲取該套接字描述符可以實現什麼的原因。

+0

原因是在UDP通信中映射發送者和接收者的信息。 – Bionix1441

+2

要映射發送者和接收者之間的信息,可以使用發送套接字描述符,接收者地址和端口的三元組。這應該就夠了..對吧? – Jay

+2

無論如何,你應該放棄獲取接收者套接字描述符的想法,它來自另一個過程,並且可能具有完全不同的含義。對於例如:如果你的進程發送UDP數據報到2個進程,並且它們都接收套接字描述符的值爲10(只是一個例子),你的映射仍然不行。 – Jay

1

你所要求的是正式無意義的。

  1. 接收方的套接字描述符處於接收過程中。它在發送過程中是不可用的,即使它沒有任何用處,因爲它的值只在接收過程中有意義。

  2. 無論如何,UDP IP地址:端口可能無法映射到單個套接字。