//客户端
public class TcpClient1 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
Socket socket = new Socket();
byte[] ipv4 = {(byte) 172,29,12,68};
InetAddress address = Inet4Address.getByAddress(ipv4);
//连接服务器
InetSocketAddress inetSocketAddress = new InetSocketAddress(address,8080);
socket.connect(inetSocketAddress);
while(true){
System.out.print ("请输入:");
String request = scanner.nextLine();
//通过字节流直接写入数据
OutputStream outputStream = socket.getOutputStream();
PrintStream printStream = new PrintStream(outputStream, true, "UTF-8");
printStream.println(request);
//通过字节流。直接读取数据
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
String response = reader.readLine();
System.out.println("收到回复:" + response);
//当用户输入886时退出
if (response.contains("886")){
break;
}
}
socket.close();
}
}
//服务端
public class TcpService1 {
public static void main(String[] args) throws IOException {
//创建并连接客户端的端口号
ServerSocket serverSocket = new ServerSocket(8080);
Scanner scanner = new Scanner(System.in);
while (true){
//如果没有客户端上来将阻塞
Socket accept = serverSocket.accept();
InetAddress inetAddress = accept.getInetAddress();
int port = accept.getPort();
System.out.printf("有客户端连接上来 %s :%d%n",inetAddress.getHostAddress (),port);
//获取输入字节流(即客户端发过来的数据)
InputStream inputStream = accept.getInputStream();
//转化成字符流
InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
//转化成缓冲流
BufferedReader bufferedReader = new BufferedReader(reader);
//获取输出字符流(即回复给客户端的数据)
OutputStream outputStream = accept.getOutputStream();
PrintStream printStream = new PrintStream(outputStream, true, "UTF-8");
String line;
while ((line = bufferedReader.readLine()) != null){
System.out.println("收到消息:" + line);
System.out.print ("请回复:");
String response = scanner.nextLine();
printStream.println(response);
//当用户输入886时退出
if (line.contains("886")){
break;
}
}
}
}
}