使用 IPRaw_PING 例程
電腦的地址? 192.168.1.190? ? ? ? , 設(shè)備地址? 192.168.1.200
u8 IPAddr[4]? ?= {192, 168, 1, 200};? ? ? ? ? ? ?//IP address
u8 GWIPAddr[4] = {192, 168, 1, 1};? ? ? ? ? ? ? //Gateway IP address
u8 IPMask[4]? ?= {255, 255, 255, 0};? ? ? ? ? ? //subnet mask
u8 DESIP[4]? ? = {192, 168, 1, 190};? ? ? ? ? ? //destination IP address
使用上述配置? 電腦 ping 設(shè)備正常? ? 設(shè)備 ping 電腦也正常
u8 IPAddr[4]? ?= {192, 168, 1, 200};? ? ? ? ? ? ?//IP address
u8 GWIPAddr[4] = {192, 168, 1, 1};? ? ? ? ? ? ? //Gateway IP address
u8 IPMask[4]? ?= {255, 255, 255, 0};? ? ? ? ? ? //subnet mask
u8 DESIP[4]? ? = {192, 168, 2, 190};? ? ? ? ? ? //destination IP address
使用上述配置 電腦ping 設(shè)備不正常(這里應(yīng)該要能ping通) 設(shè)備 ping 電腦不通(這里對的) 都是 time out ,
您好,IPRaw_PING例程只是演示如何主動ping的demo程序,當(dāng)iprawsocket置1后,協(xié)議棧就不再處理關(guān)于ping的包,且代碼邏輯為只應(yīng)答DESIP的ping包,所以即使您的電腦和板子在同一網(wǎng)段,但ip不是DESIP,那也不會回復(fù)ping包,所以無法ping通,這部分代碼需要您自己實現(xiàn)的。
代碼里沒看到有哪里處理 判斷DESIP的地方, 能方便再詳細(xì)的指導(dǎo)一下嗎?用的 Netlib庫,這個協(xié)議棧不是封裝好的嗎,外部好像也沒辦法處理吧
您好,因為處理的數(shù)據(jù)是通過socket來接收的,創(chuàng)建socket的目標(biāo)ip為DESIP,所以不會處理別的ip發(fā)的ping包,當(dāng)netconfig.h中WCHNET_NUM_IPRAW數(shù)量設(shè)置為1時,協(xié)議棧不會再處理ping包,而是交由應(yīng)用層,對于非目標(biāo)ip的ping包
處理,需要客戶自己實現(xiàn),若想使用協(xié)議棧的ping包處理機(jī)制,可以使用TCP等例程或?qū)?span>WCHNET_NUM_IPRAW清0