Java基础ServerSocket、Socket服务端客户端连接的例子

 2020-07-04 

Java基础ServerSocket、Socket服务端客户端连接的例子)

  • 代码示例

代码示例

比较基础的代码,配有详细的注释,就不多说了。

服务端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 * 服务端
 *
 * @Author wanglingqiang
 * @Date 2020/7/3 下午5:53
 **/
public class Server {

    public static void main(String[] args) throws IOException {
        // 开启服务,绑定端口
        ServerSocket serverSocket = new ServerSocket(6379);
        // 同步阻塞等待消息
        Socket socket = serverSocket.accept();
        // new一个数组容器
        byte[] bytes = new byte[1024];
        // 获得输入流
        InputStream inputStream = socket.getInputStream();
        // 把输入流的数据读到字节数组容器
        inputStream.read(bytes);
        // 字节数组转成字符串
        String result = new String(bytes);
        // 打印
        System.out.println(result);
        // 关闭socket
        socket.close();
        serverSocket.close();;
    }
}

服务端控制台输出:

1
2
3
Connected to the target VM, address: '127.0.0.1:50425', transport: 'socket'
Hello world.
Disconnected from the target VM, address: '127.0.0.1:50425', transport: 'socket'

客户端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * 客户端代码
 *
 * @Author wanglingqiang
 * @Date 2020/7/3 下午5:57
 **/
public class Client {
    public static void main(String[] args) throws IOException {
        // 连上Server
        Socket socket = new Socket("127.0.0.1", 6379);
        // 获得输出流
        OutputStream outputStream = socket.getOutputStream();
        // 消息
        String msg = "Hello world.";
        // 向输出流写字节数据
        outputStream.write(msg.getBytes());
        // 关闭socket
        socket.close();
    }
}