-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 回答