Socket Communicatin BufferedReader

时间:2015-11-18 02:25:33

标签: java sockets 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();
}

}

1 个答案:

答案 0 :(得分:1)

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

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

在这里,您正在建立与自己的联系。

 s=ss.accept();

在这里你丢弃了Socket并接受了一个新的,现在你已经结束了你刚刚扔掉的另一端。

String test =reader.readLine();

在这里,你试图从同伴那里读到一条永远不会到达的线,因为同伴就是你自己并且你扔掉了Socket.

当您在下一行分配任何变量时,您不需要初始化任何变量。它应该是:

Socket s = ss.accept();