-1

Java ソケットを使用して、Java の 2 つのプログラム間で通信しようとしています。ソケットを介してデータとしていくつかのバイトを送信したい。これらのバイトはデータであり、その値は何でもかまいません (0 や -1 の可能性もあります)。DataInputStream クラスを使用して通信を処理しようとしましたが、読み取ろうとしているバイトのどこかでバイト 0 を受信しない場合は正常に動作します。それ以外の場合は、この 0 バイトでブロックされ、読み取りが停止するようです。これがどのように、またはなぜ起こっているのか、そしてこれを回避する方法についてのアイデアはありますか? ありがとう !

4

1 に答える 1

1

シンプルにしてください、

使ってみてInputStream, InputStreamReader, BufferedReader, OutputStream, PrintWriter.

クライアント側:

Socket s = new Socket();
s.connect(new InetSocketAddress("Server_IP",Port_no),TimeOut); 
// Let Timeout be 5000

サーバ側:

ServerSocket ss = new ServerSocket(Port_no);
Socket incoming = ss.accept();

ソケットから読み取る場合:

InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);

BufferedReader br = new BufferedReader(isr);
boolean isDone = false;

String s = new String();

while(!isDone && ((s=br.readLine())!=null)){

     System.out.println(s);   // Printing on Console

 }

ソケットへの書き込み用

OutputStream os = s.getOuptStream();
PrintWriter pw = new PrintWriter(os)

pw.println("Hello");
于 2012-09-23T20:21:29.013 に答える