UDP信息的接收?
基于UDP的通信,老師講的我是這么理解的:客戶端發(fā)送信息后,服務(wù)器端接收信息。通過recieve(packet)方法,把接收的信息存儲在服務(wù)器端的packet中,然后通過構(gòu)造把packet中的信息轉(zhuǎn)到byte[]數(shù)組中,在把數(shù)組轉(zhuǎn)為字符串,得到發(fā)送過來的信息。不知道理解的對不對?那這樣的話,發(fā)送過來的信息太長,byte[]的長度不夠怎么辦?有所循環(huán)讀取的,我看了API也沒有想到循環(huán)讀取的方法。
2016-08-08
我記得老師說過這么一句話:byte[]是數(shù)據(jù)報中用來存儲數(shù)據(jù)的。 所以我的理解是:通過receive(packet)方法,把接收的信息存在服務(wù)器端的packet中,實際上就是存在了packet中的byte[]中,然后通過String info = new String(data,0,packet.length)把packet中的byte[]轉(zhuǎn)化為了String類型。 至于你提問的byte[]長度不夠,我想你擔(dān)心的是用來接收數(shù)據(jù)的byte data = new byte[1024];太短吧,我以前也有過這種疑問。我查過很多資料,官方的說法不好理解,民間的說法是:byte[1024]就像緩存一樣去存儲接收到的信息,當(dāng)byte[1024]裝滿的時候,會清空,再從剛才沒存放完的地方繼續(xù)存,依次類推,直到存放完所有接收到的數(shù)據(jù)。 這是我個人的理解,你參考看看