- Socket服务端
package com.cloud.common.util;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
/**
* @author rocky.maple
* @date 2021/7/15 9:57 上午
*/
public class SocketServer {
public static void main(String[] args) {
try {
// 初始化服务端socket并且绑定9999端口
ServerSocket serverSocket = new ServerSocket(9999);
//等待客户端的连接
System.out.println("等待连接");
Socket socket = serverSocket.accept();
System.out.println("有socket连接");
BufferedWriter bufferedWriter =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//通过标准输入流获取字符流
BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
while (true){
String str = bufferedReader.readLine();
bufferedWriter.write(str);
bufferedWriter.write("
");
bufferedWriter.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- Socket客户端
package com.integration.controller.task.code;
import org.junit.Test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
/**
* @author rocky.maple
* @date 2021/7/15 11:44 上午
*/
public class SocketClient {
@Test
public void run() {
try (//初始化一个socket
Socket socket = new Socket("127.0.0.1", 9999);
//通过标准输入流获取字符流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8))) {
while (true) {
String str = bufferedReader.readLine();
System.out.println("获取的数据为:" + str);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 执行结果 服务端输入: 客户端收到消息:
- 注意:实际使用中别忘记了关流