Socket 通信的坑
使用Socket 通信時, 發送信息時, 使用 BufferedWriter.write(String)發送, 存在長度限制, 如果發送信息字符過多, 會自動給拆成多個信息發送, 容易導致服務器端解析錯誤, 修改成OutputStream.write(String.getBytes(“UTF-8”))之後解決了此問題.
遇到問題的部分
String msg="sadjkbgidasvnvdsa";
//發送遙控器的紅外碼時遇到的問題
OutputStream outputStream = socket.getOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(order);
bufferedWriter.flush();
修改之後的代碼
String msg = "sadjkbgidasvnvdsa";
OutputStream outputStream = socket.getOutputStream();
outputStream.write((msg).getBytes("UTF-8"));
outputStream.flush();