本文主要分析从Java Socket API到Linux Socket API的调用链,从而来探究Java Socket是如何利用Linux提供的系统调用来实现对应功能的。
Java Socket API示例代码
首先给出一个利用Java Socket API编写的简易的Hello/Hi代码示例。
//服务端
1 ServerSocket server = new ServerSocket(8000);
2 Socket client = server.accept();
3 InputStream in =client.getInputStream();4 byte[] bytes = new byte[1024];5 int len = in.read(bytes);
6 String data = new String(bytes, 0, len);7 System.out.println("接收客户端消息:" +data);8
9 OutputStream out =client.getOutputStream();10 out.write("Hi".getBytes());11 client.close();
//客户端
1 Socket client = new Socket("localhost", 8000);
2 OutputStream out =client.getOutputStream();3 String msg = "Hello";4 out.write(msg.getBytes());
5
6 InputStream in =client.getInputStream();7 byte[] bytes = new byte[1024];8 in