我有用 C/C++ 编写的服务器,客户端是在 android 上运行的 Java。
服务器看起来像
C++ 服务器
#define ETH_DATA_LENGTH 25
bzero(buf,ETH_DATA_LENGTH);
rd=read(newsockfd,buf,ETH_DATA_LENGTH);
if(rd>0){
printf("received %s\n", buf);
char cmd[ETH_DATA_LENGTH]={0};
sprintf(cmd,"%s",buf);
//setCommand(cmd);
}
android客户端发送格式的数据包, 5_11_14_, 5_11_15_, 5_11_16_,etc...
如果客户端在每个数据包中存在延迟,则服务器正确接收数据。但是当客户连续发送时,我得到了一些额外的字符,看起来像
received 5_11_9_
received 5_11_10_
5_11_11_
5_11_12�ڳ
received _
received 5_11_13_
在 android 端,我正在发送数据,例如
Java 客户端
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(clientsocket.getOutputStream())),true);
out.println(str);
知道为什么会这样吗?
提前致谢....