【发布时间】:2013-04-28 22:16:18
【问题描述】:
我从 C 客户端向 Java 服务器发送一个整数,它运行良好。但是当我试图用一个字符串做同样的事情时,我得到了错误 这是发送字符串的客户端代码
char clientString[30];
printf("String to send : \n");
if( send( to_server_socket, &clientString, sizeof( clientString ), 0 ) != sizeof( clientString ) )
{
printf( "socket write failed");
exit( -1 );
}
以及读取它的java代码
DataInputStream din = new DataInputStream(socket.getInputStream());
String clientString=din.readUTF();
System.out.println(clientString);
错误
java.io.EOFException 在 java.io.DataInputStream.readFully(DataInputStream.java:180) 在 java.io.DataInputStream.readUTF(DataInputStream.java:592) 在 java.io.DataInputStream.readUTF(DataInputStream.java:547) 在 ServiceRequest.run(ServiceRequest.java:43) 在 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)
编辑:我尝试使用din.readLine(),我没有错误了,但是如果我在客户端输入 fffffff12 我在服务器中得到 fffffff12`?7E^Ê?h
【问题讨论】:
-
好的,我们有 Java 异常调用堆栈,但是对于 what 异常呢?
-
另请注意,
&clientString和sizeof(clientString)可能不会按照您的预期进行。请编辑您的问题以包含clientString的声明。
标签: java c sockets datainputstream