蓝牙串口接收数据发生分段问题怎么解决?

qq_34328960 2016-04-06 04:06:25
//读取数据
private class readThread extends Thread {
public void run() {

byte[] buffer = new byte[1024];
int bytes;
InputStream mmInStream = null;

try {
mmInStream = socket.getInputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while (true) {
try {
// Read from the InputStream
if( (bytes = mmInStream.read(buffer)) > 0 )
{
byte[] buf_data = new byte[bytes];
for(int i=0; i<bytes; i++)
{
buf_data[i] = buffer[i];
}
String s = new String(buf_data);
Message msg = new Message();
msg.obj = s;
msg.what = 1;
LinkDetectedHandler.sendMessage(msg);
}
} catch (IOException e) {
try {
mmInStream.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
break;
}
}
}
}
问题:这是一个服务端发数据给客户端,但是数据被分段显示了。
例如:我从服务器端给客户端发送:12345;客户端显示:1 2345(被分成了两段)
请问怎么解决啊?急~
...全文
582 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-04-07
  • 打赏
  • 举报
回复
仅供参考: 不知道有多少前人掉在TCP Socket send(人多)send(病少)send(财富) recv(人多病)recv(少财富) 陷阱里面啊! http://bbs.csdn.net/topics/380167545
qq_34328960 2016-04-07
  • 打赏
  • 举报
回复
你是指这里吗?byte[] buffer = new byte[1024];我改为byte[] buffer = new byte[2048];也不行
cocoabird 2016-04-06
  • 打赏
  • 举报
回复
客户端的缓冲区设大一点试试

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧