我的 Java 服务器发送一个整数和一个字符串(到 C 客户端):
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”字符串。我不确定问题出在客户端还是服务器上。
谁能向我解释我做错了什么?