使用socket通信時 發送超長信息時, 發送一條, 服務器接收多條

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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章