0

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 を取得しました

4

3 に答える 3