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