我的Java服务器发送一个整数和字符串(以C客户端):接口C客户端和Java服务器只能发送一个字符串
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeInt(ClientNumber); //send the Integer
String randomString= getRandomValue(10,20);
dos.writeUTF(randomString); //send the String
String clientString=din.readLine();
的是阅读它们的客户端的C代码:
if(recv(to_server_socket, &reply, sizeof(reply), MSG_WAITALL) != sizeof(reply))
{
printf("socket read failed");
exit(-1);
}
char buf[50];
int byte_count;
byte_count = recv(to_server_socket, buf, sizeof buf, 0);
printf("recv()'d %d bytes of data in buf\n", byte_count)
直到这里,它工作正常。
现在,我想向客户端发送另一个字符串。所以,我想只需添加一行:
dos.writeUTF("blabla");
它仍然在工作,当我试图让客户端读取它,我说:
byte_count2 = recv(to_server_socket, buf2, sizeof buf2, 0);
printf("recv()'d %d bytes of data in buf\n", byte_count2);
而且这是行不通的。客户端收到号码和第一个字符串,但它不发送任何内容,也不会收到“blabla”字符串。我不确定问题出在客户端还是服务器端。
任何人都可以向我解释我做错了什么?
如果您发布了[上一个问题]的扩展版本(http://stackoverflow.com/q/16384315/335858),则应该删除旧的以避免重复。 – dasblinkenlight 2013-05-05 13:49:24