套接字通信 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();
我不太了解缓冲区读取器,但我的读取器在应该读取它的行挂断了任何建议
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();