使用workerman做udp服務(wù)器,兩個(gè)人操作繪圖需要同步,需要斷線重連,需要回放,快進(jìn)等操作,看文檔說udp比較適合。自己查找了資料,看的有點(diǎn)懵逼不太了解
我看一些文章udp在ip層內(nèi)已經(jīng)做過校驗(yàn)和了,那么是不是在構(gòu)建通信數(shù)據(jù)的時(shí)候就不需要做校驗(yàn)和這一步操作了?
udp是報(bào)文發(fā)送的,那么是不是就是我的每個(gè)sendto操作都是一個(gè)報(bào)文發(fā)送,客戶端都需要接受一次,不需要像數(shù)據(jù)流那樣規(guī)定包頭來獲取數(shù)據(jù)的長(zhǎng)度?(之前寫一個(gè)TCP 的項(xiàng)目)
udp構(gòu)建JSON數(shù)據(jù)后轉(zhuǎn)十六進(jìn)制數(shù)據(jù),為什么要這樣操作呢?(有大神的請(qǐng)?jiān)斀庀禄蛘呓o個(gè)講解鏈接,萬分感謝)
大小端問題:php的bin2hex轉(zhuǎn)16進(jìn)制是大端轉(zhuǎn)換,解析也是unpack('H*',$data)解析,那么要求客戶端構(gòu)建數(shù)據(jù)后使用16進(jìn)制大端發(fā)送就行了是吧?
udp是無順序的且會(huì)丟失數(shù)據(jù)的,我構(gòu)思的是在udp發(fā)送需要時(shí),如果客戶端收到的是有缺失幀序號(hào)的那么就發(fā)送信息到服務(wù)器,要求服務(wù)器重新發(fā)送這一幀的數(shù)據(jù)。我想要的補(bǔ)幀服務(wù)使用tcp服務(wù),服務(wù)端啟動(dòng)兩個(gè)服務(wù),一個(gè)udp做幀同步,一個(gè)tcp服務(wù)做補(bǔ)幀服務(wù)(不會(huì)丟失),這樣做可以么?會(huì)不會(huì)有什么問題?其他人都是如何做的?