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