我想向服务器发送一个整数,将其递增并将新数字和随机字符串发送回客户端。我用这个代码C客户端和Java服务器之间的通信错误
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)at ServiceRequest.run(ServiceRequest.java:41)at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:439) at java .util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138)at 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 send an integer from a C client to a Java server工作,我得到INT但对于字符串,我得到的数字和字符不
您已问过此问题。 http://stackoverflow.com/questions/16362303/send-an-integer-from-ac-client-to-a-java-server – austin 2013-05-03 16:42:33
你在这里发布的代码显示你错过了我之前回答的最终编辑。回去并重新阅读这里的编辑:http://stackoverflow.com/questions/16362303/send-an-integer-from-a-c-client-to-a-java-server/16362518#16362518 – 2013-05-03 16:51:41