日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

调试网络收发不通问题

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调试网络收发不通问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在做之前一個項目重構的事情,需要把之前的代碼重新做功能,我們有兩個設備,他們通過網線連接,用UDP來傳輸數據。很多人都懷疑UDP丟包什么,不及時什么之類的,如果想把事情做得足夠快,最好還是在UDP上做一些事情,對于丟包是有很多處理方式的。

然后,我在新代碼的調試下,發現問題,A設備發送廣播包給B設備發送不成功。簡單的代碼定位如下

#include?<errno.h> printf("%s(),LINE=%d,[%s]\n", __FUNCTION__, __LINE__, strerror(errno));

執行后看到輸出

我剛開始以為是端口的原因,然后檢查了一下才發現,是因為我沒有設置默認網關,我從網上看到這個圖的。

講道理,我們的兩個設備都不需要連接外網,所以是沒有必要配置網關的,問題是出在,我的網絡廣播包發送的的是 "255.255.255.255"。

在配置系統里面默認網關的目的,是告訴系統,當有些數據包不匹配路由表中其他任意路由,不知道怎么選路的時候,就把這個數據包丟給默認網關讓它幫你轉,所以,網關可以認為是網絡的管家,當有人不知道做什么的時候,就需要網關來告訴他要做什么,要到哪里去。

?

在把網關配置正常后,設備可以正常收發數據。

但是我不想每次都配置一次網關,所以我就需要換一個廣播地址,把廣播的地址修改成"192.168.9.255"。

嗯,這樣之后,發送就不會再提示有問題了。

但是接收數據沒有看到有數據,崩潰~~~~

這個時候單播和兩個設備互ping都是沒有問題的。

然后檢查兩個設備的網絡情況,如下

發現兩個設備不在同一個網段下,so,我就懷疑我的服務可能寫的有問題。

正常情況下,A設備通過DHCP從B設備獲取IP,那B設備的DHCP服務配置就可能是很大的問題了,因為每次執行獲取IP的命令后就發現我的子網掩碼被修改了,那應該是DHCP服務搞的鬼。

然后去看DHCP服務的配置文件,發現配置文件寫的有問題,配置文件沒有讓設備處在同一個子網掩碼下。

錯誤的配置文件如下

需要把opt subnet 配置成和IP地址同一個網段的地址。opt subnet 是子網掩碼的計算工具,子網掩碼就是通過這個計算出來的,我們子網掩碼不正確也就是這個原因了。

最后,修改固件的配置文件重新燒錄后驗證正常。

網絡是個很復雜的東西,搞網絡的時候,我總是搞不懂MAC層是什么,PHY層是什么,為什么有了MAC層又多出來一個PHY層。

說白了,這兩個層都是硬件層,我們還可能遇到一些Switch加兩個PHY,Switch可能很多人還不知道是什么東西,這無非就是高速開關,有多高速我也說不清楚,反正因為高速切換產生的溫度是非常高的。

好了,就這樣。感謝發哥又跟我調試了一天~謝謝發哥~

總結

以上是生活随笔為你收集整理的调试网络收发不通问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。