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.DataInputStream.readFully(DataInputStream.java:180) での java.io.EOFException 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.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) の java.util.concurrent.FutureTask.run(FutureTask.java:138) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:918) で java.lang.Thread.run(Thread.java:680)
編集:使用してdin.readLine()
みましたが、エラーはもうありませんが、クライアントで fffffff12 と入力すると、サーバーで fffffff12`?7E^Ê?h を取得しました