[問題] byte陣列設encoding

看板java作者 (Lucifer)時間17年前 (2009/03/19 16:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
各位:   請問byte陣列可以設encoding嗎?我知道從字串轉換過來可以用 byte b[] = str.getBytes("UTF-8"); 這種方式設定, 但是建立byte陣列時可以嗎?   因為建立Socket傳送時, 超過一定長度(1KB), 我們需要做切割. 並且做編號與長度, 但是現在的程式每次都會miss掉最後兩個byte... public void send(String IP, String msg) { try { InetAddress ip = InetAddress.getByName(IP); byte msg_byte[] = msg.getBytes("UTF-8"); byte payload[] = new byte[1026]; byte n = (byte) (msg_byte.length % 1024 == 0 ? msg_byte.length / 1024 : msg_byte.length / 1024 + 1); byte b = 0; int j = 2; for (int i = 0; i < msg_byte.length; i++) { payload[j++] = msg_byte[i]; if ((i + 1) % 1024 == 0) { payload[0] = n; payload[1] = b++; DatagramPacket dp = new DatagramPacket(payload, payload.length, ip, 90); sendScoket.send(dp); j = 2; } else if (i == msg_byte.length - 1 && ((i + 1) % 1024 != 0)) { payload[0] = n; payload[1] = b++; byte tmp[] = Arrays.copyOfRange(payload, 0, msg_byte.length - 1024 * (n - 1)); DatagramPacket dp = new DatagramPacket(tmp, tmp.length, ip, 90); sendScoket.send(dp); } } } catch (Exception e) { System.out.println("method send occurrence error: " + e); } } -- 重要的是"心" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.129.167
文章代碼(AID): #19mW38yJ (java)
文章代碼(AID): #19mW38yJ (java)