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