#全新智己L6全国试驾开启#
package com.alatus.ourApp.test;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String[] args) {
try {
// 首先我们建立了服务用于接收所有访问我这个IP这个端口的请求
ServerSocket ss = new ServerSocket(8868);
System.out.println("服务已启动,等待客户端连接");
// 任何请求进来都是一个Socket
Socket accept = ss.accept();
String ip = accept.getInetAddress().getHostAddress();
System.out.println("有客户端连接了"+ip+"端口"+accept.getPort());
new Thread(new Runnable() {
@Override
public void run() {
while (true){
try{
// 我们这边要做流式连接
// 我可以通过这个Socket获取输入流
InputStream inputStream = accept.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
// 输入流信息是不能直接获取的,需要通过BufferedReader装载
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 接下来从我们包装过的BufferedReader中读取信息
String readLine = bufferedReader.readLine();
System.out.println("客户端的消息:"+readLine);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.alatus.ourApp.test;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class SocketClient {
public static void main(String[] args) {
try {
// 只要我们知道对方的ip和端口号,就可以直接连接上对方
Socket socket = new Socket("127.0.0.1",8868);
// 我们需要发送消息,就需要这个虚拟连接的输出流
OutputStream out = socket.getOutputStream();
// 输出流封装,使用PrintWriter来输出,我们需要输入流,写入这个输出流内
PrintWriter printWriter = new PrintWriter(out);
System.out.println("请输入内容");
Scanner scanner = new Scanner(System.in);
new Thread(()->{
while(true){
String input = scanner.nextLine();
// 输入流就直接把客户端输入的东西写进去这个输出流,对方就会收到
printWriter.println(input);
// 关闭这个输出流
printWriter.flush();
}
}).start();
}
catch (Exception e) {
e.printStackTrace();
}
}
}