Socket通信
摘自:Java Socket 编程
服务器
- 创建socket服务端,绑定监听端口
1
| ServerSocket serverSocket = new ServerSocket(6666)
|
- 使用拥塞算法监听端口,客户端与服务端连接后,新建一个socket来连接客户端与服务端
1
| Socket clientSocket = serverSocket.accept();
|
- 通讯,直至socket将流关闭
1 2
| PrintWriter pw = new PrintWriter(clientSocket.getOutputStream(),true); BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
|
客户端
- 客户端知道socket服务端ip地址以及端口号
1
| Socket clientSocket = new Socket("127.0.0.1",6666);
|
- 上面的构造方法只在服务器接受连接时才实例一个新socket,连接失败,会抛出连接拒接异常(connection refused exception). 新socket创建成功时, 我们可以获得与服务器通讯的输入和输出流.
1 2
| PrintWriter pw = new PrintWriter(clientSocket.getOutputStream(),true); BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream));
|
我之前的误解
1
| BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
|
客户端、服务端的PrintWriter、BufferedReader都是针对socket的输入输出,
只有在PrintWriter准备写数据的时候才可以自定义输入消息