標籤:逾時 log img 發送資料 判斷 目標 網路 nbsp switch
1、
JSON那一塊有點小問題,當我們和手機進行通訊的時候,virtualswitch寫成原生地址 192.168.1.100即可。
還有就是 jsonstring.c_str() 後面沒有 + 1,不然無法與手機進行通訊。
2、路由器配置
(知識:路由器再接路由的時候,另一個路由的LAN口需要設定為另一個網段,否則無法上網)且需要手動設定DNS和備用DNS地址。
WLAN口需要配置DNS伺服器。這裡的WLAN口是從另一個路由器的LAN口過來的。也就是說,現在的兩個路由器之間可以相關訪問。
我們在做實驗的時候,可以修改主機IP和手機IP在兩個不同網段。
LAN口需要和WLAN口設定成不一樣的配置:
3、ZMP再思考
迴圈數組有問題,我們可以將isNew放入數組內部,而不是全域變數出現。
類似isValid[6],當我們收不到資料的時候,應該將isValid置為0,也就是說,逾時判斷在本線程裡面做,而不是另一個線程裡面去做。
這裡,我們的isValid寫在迴圈數組裡面,所有,可以隨便調用。充當每一個數組的有效位,來判斷是否是有效值。
對於isNew來說,每次得到有效值,它是在操作的。且其值只有一個,可能會出現在不同線程當中,多次調用的出錯。
4、阻塞與非堵塞
更改zmq模式裡面的發送方式,改為阻塞式發送。
改用阻塞式的話,有一個很大的問題是,程式會堵塞在那,不會往後執行,除非加上逾時退出功能。所以,此環節需要考慮到。當然,這個和程式的執行循環有關係。
只要保證 擷取資料的周期 < 發送周期就行。
另外,發送資料需要一直發,即使沒有目標也需要發送資料。
這樣的話,只要我這邊再發送資料,說明程式沒有死。假如沒有資料程式就死掉了。
我們可以規定最少發送資料數量為1.
假如說isNew只用到一次的話,是完全可以的。也就是說,用在一個線程裡面,其實不是。在多個線程裡面都有調用。
另外,阻塞模式應該是用不到了。因為,程式會死在那。
關於網路設定和zmp以及json