要实现 java socket 功能,需要两台机器:一个服务端 Server.java , 一个客户端 Client.java

服务端 Server.java

// Server.java
public class Server{
  ServerSocket server = new ServerSocket(10010);
  // 使用 accept() 方法监听服务器的 10010 端口,并获取一个 socket 对象
  Socket socket = server.accept();
 
  // 使用 socket 对象获取一个网络输入流
  InputStream is = socket.getInputStream();

  // 准备一个 1024B 的缓冲区
  byte[] bs = new byte[1024];

  // 读取客户端发送的字节流数据
  int len = is.read(bs);
  
  // 使用 new String() 构造,将字节数组转换为字符串
  System.out.println(new String(bs));
}

客户端 Client.java

// Client.java
public class Server{
  // new 一个 socket 对象
  Socket socket = new Socket("localhost", 10010);

  // 使用 socket 对象获取一个网络输出流
  OutputStream os = socket.getOutputStream();

  // 准备向服务端发送的数据
  String strForServer = "hello Server";
  
  // 使用 getBytes() 方法,将字符串转换为字节数组,并发送给服务端
  os.write(strForServer.getBytes());
}

注意事项:

1.Java Socket 编程中:发送使用网络输出流,接收使用网络输入流。并且,网络流的获取都是使用 Socket 对象。
获取网络输入流: socket.getInputStream()
获取网络输出流: socket.getOutputStream()

2.关于 Socket 对象的获取
客户端获取使用 new 的方式
服务端则是通过 ServerSocket 对象的 accept() 方法

标签: java, socket

评论已关闭