Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出

时间:2023-03-09 09:45:05
Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出

1. 客户端:

 package cn.itcast_08;

 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket; /*
* 客户端键盘录入,服务器输出到控制台
*/
public class ClientDemo {
public static void main(String[] args) throws IOException {
// 创建客户端Socket对象
Socket s = new Socket("192.168.12.92", 22222); // 键盘录入数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 把通道内的流给包装一下
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream())); String line = null;
while ((line = br.readLine()) != null) {
// 键盘录入数据要自定义结束标记
if ("886".equals(line)) {
break;
}
bw.write(line);
bw.newLine();
bw.flush();
} // 释放资源
// bw.close();
// br.close();
s.close();
}
}

2. 服务器端:

 package cn.itcast_08;

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket; public class ServerDemo {
public static void main(String[] args) throws IOException {
// 创建服务器Socket对象
ServerSocket ss = new ServerSocket(22222); // 监听客户端连接
Socket s = ss.accept(); // 包装通道内容的流
BufferedReader br = new BufferedReader(new InputStreamReader(
s.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
} // br.close();
s.close();
// ss.close();
}
}

运行效果,先开服务器端,如下:

Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出

再开客户端,如下:

Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出

回到服务器,如下:

Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出