套接字通信 BufferedReader

Socket Communicatin BufferedReader

我不太了解缓冲区读取器,但我的读取器在应该读取它的行挂断了任何建议

import java.io.*;
import java.net.*;

public class Host
{

public static void main(String args[])throws Exception
{
     ServerSocket ss = new ServerSocket(5001);
     Socket s=new Socket("127.0.0.1",5001);
     s=ss.accept();

     PrintWriter writer = new PrintWriter(s.getOutputStream(), true);

     writer.write("Time");
     writer.println("time");

     BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));

     String test =reader.readLine();
     System.out.println(test);
     s.close();
     ss.close();
}

}

对方没有发送线路或关闭套接字。原因:

Socket s=new Socket("127.0.0.1",5001);

此处您正在创建与自己的连接。

 s=ss.accept();

在这里你扔掉了那个 Socket 并接受了一个新的,它现在是你刚刚丢弃的连接的另一端。

String test =reader.readLine();

这里你试图从对等点读取一条永远不会到达的线,因为对等点就是你自己,你已经扔掉了 Socket.

在下一行赋值时不需要初始化任何变量。应该是:

Socket s = ss.accept();