在Java中如何创建一个Socket对象?

在Java中,可以使用Socket类创建一个Socket对象,语法如下:

Socket socket = new Socket(String host, int port);
  • host:服务器主机地址,可以是IP地址或域名。
  • port:服务器端口号。

例如:

// 连接本地9000端口
Socket socket = new Socket("127.0.0.1", 9000);

// 连接域名example.com的80端口  
Socket socket = new Socket("example.com", 80);

创建Socket对象就实现了与服务器的连接,然后可以通过该Socket对象进行输入输出流的获取,以实现客户端和服务器端的数据通信。
例如:

Socket socket = new Socket("example.com", 80);
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();

// 读取服务器响应  
byte[] b = new byte[1024];  
int len = inputStream.read(b);
String content = new String(b, 0, len);
System.out.println(content);

// 向服务器发送请求
outputStream.write("GET / HTTP/1.1\r\n\r\n".getBytes());

所以,创建Socket对象的主要作用是:

  1. 根据服务器地址和端口号建立TCP连接。
  2. 获取输入输出流,用于客户端和服务器的数据通信。
  3. 封装通信细节,提供简单易用的API,方便我们实现客户端功能。

创建Socket时,主要需要关注的点有:

  1. 服务器地址必须正确,否则会导致Socket创建失败,抛出未知主机异常。
  2. 服务器必须开启监听端口,否则会导致Socket创建失败,抛出连接异常。
  3. 同一端口只允许一个Socket监听,否则后续Socket创建会失败。
  4. 创建多个Socket但没有关闭会导致资源泄露,需要及时关闭。
  5. Socket创建成功后要及时获取输入输出流,否则容易出现阻塞。

Socket知识点:

  1. Socket(host, port)构造方法的使用。
  2. 服务器地址和端口号的作用。
  3. 输入输出流的获取和使用。
  4. 可能出现的异常及其原因。
  5. 使用完毕后Socket的关闭。