我想向服务器发送一个整数,增加它并将新数字和一个随机字符串发送回 Client 。我使用此代码
int value = htons( 4 );
int reply = 0;
send( to_server_socket, &value, sizeof( value ),0 );
recv( to_server_socket, &reply, sizeof( reply ), 0 );
printf( "got reply: %d\n", ntohs( reply ) );
服务器代码
DataInputStream din = new DataInputStream(socket.getInputStream());
int ClientNumber= din.readInt();
System.out.println(ClientNumber);
ClientNumber++;
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeInt(ClientNumber);
String randomString= getRandomValue(10,20);
dos.writeUTF(randomString);
但服务器没有收到 4 但 262144 和客户端中的回复仍然为 0。我在服务器中也有错误
java.io.EOFException 在 java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323) 在 java.io.DataInputStream.readUTF(DataInputStream.java:572) 在 java.io.DataInputStream.readUTF(DataInputStream.java:547)在 ServiceRequest.run(ServiceRequest.java:41) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 在java.util.concurrent.FutureTask.run(FutureTask.java:138) 在 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:918) 在 java.lang.Thread.run(Thread.java:680)
编辑:
它与 htonl 一起使用将整数从 C 客户端发送到 Java 服务器我得到了 int 但对于字符串我得到的是数字而不是字符