[問題] byte陣列設encoding
各位:
請問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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):