收到0时Java套接字读取问题

时间:2012-09-23 19:29:51

标签: java sockets byte

我正在尝试使用Java套接字在Java中的两个程序之间进行通信。我想通过套接字发送一些字节作为数据。这些字节是数据,它们的值可以是任何值(因此可以是0,可能是-1)。我试图使用DataInputStream类来处理通信,并且如果我没有在我试图读取的字节中的某处接收到字节0,则工作正常,否则,它似乎阻塞在这个0字节并停止读取。任何人都会对如何或为何发生这种情况有任何想法,以及如何解决这个问题的任何想法?谢谢!

1 个答案:

答案 0 :(得分: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");