2014-02-05 39 views
0

接收分段的UDP數據包我使用2個不同的C程序接收的分段數據包,一個:使用被定義爲以下的UDP套接字問題使用被定義爲下面的一個原始套接字用C

_socket0 = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); 

之一:

_socket0=socket(AF_INET, SOCK_DGRAM, 0); 

第一個工作正常,第二個不工作,我不能看到nothings。 任何人都可以告訴我原因?

回答

0

UDP數據包的一個片段不是UDP數據包,所以不會傳遞給UDP套接字。 UDP套接字用於讀寫整個UDP數據包,而不是攜帶一個數據包的IP數據包。

+0

這很明顯,但對於我在PC發送數據包到新層(teh UDP層)之前接收到分段數據包時知道的信息,它會重新組合這些數據包以獲得單個更大的數據包。所以可能的問題是爲什麼PC不重組數據包。 – user3274525

+0

實際上首先我不明白爲什麼我不能接收單個UDP數據包,這個問題就是原來的問題 – user3274525