簡體   English   中英

套接字(AF_INET,SOCK_RAW,IPPROTO_UDP)將停止所有發送到正確位置的數據報嗎?

[英]will socket(AF_INET, SOCK_RAW, IPPROTO_UDP) stop all the datagrams going to the right places?

所以我用socket(AF_INET,SOCK_RAW,IPPROTO_UDP)創建了一個socket。 然后,我使用無限循環給它recv()。 我知道它可以捕獲所有數據報。 但這會阻止數據報到達正確的位置嗎? 我做了一個小實驗。 我從一個程序向另一個程序發送非常簡單的UDP消息。 他們倆都收到了消息。 我假設原始套接字不會阻止任何UDP消息。 然后,我在這個問題的最佳答案的第二段中對此進行了閱讀。 它說未綁定的udp套接字會破壞系統。 因此,我不確定原始套接字是否相同。 還是在Linux和Windows上有所不同?

還有另一個問題:將套接字(AF_INET,SOCK_RAW,IPPROTO_UDP)與端口綁定不會執行任何操作,對嗎? 我做到了,套接字仍然收到去往其他端口的消息。

不。 原始套接字將所有數據包傳遞給所有注冊的套接字用戶,因此,一旦數據包進入系統,您將立即獲得該數據包的副本,但是UDP套接字也將收到它。

第二個問題...您不bind(2)原始套接字,因此無法將其與端口號關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM