欢迎访问宙启技术站
智能推送

在Java中使用Socket类实现网络连接与通信

发布时间:2023-10-25 12:10:38

在Java中,我们可以使用Socket类实现网络连接与通信。Socket类封装了TCP/IP协议,可以通过网络发送和接收数据。

首先,我们需要创建一个ServerSocket对象来监听指定的端口,等待客户端的连接请求。代码如下:

try {
    ServerSocket serverSocket = new ServerSocket(8080);
    System.out.println("服务器已启动,等待客户端连接...");
    Socket socket = serverSocket.accept();
    System.out.println("客户端已连接:" + socket.getInetAddress());
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们创建了一个ServerSocket对象,并指定要监听的端口为8080。然后,调用accept()方法来等待客户端的连接请求。当有客户端连接成功时,accept()方法会返回一个Socket对象,表示与客户端建立的连接。我们可以通过getInetAddress()方法获取客户端的IP地址。

接下来,我们可以通过Socket对象来进行数据的发送和接收。代码如下:

try {
    // 与客户端建立的连接
    Socket socket = new Socket("localhost", 8080);
    // 获取输出流,用于发送数据
    OutputStream outputStream = socket.getOutputStream();
    // 发送数据
    outputStream.write("Hello, Server!".getBytes());
    
    // 获取输入流,用于接收数据
    InputStream inputStream = socket.getInputStream();
    // 创建一个缓冲区
    byte[] buf = new byte[1024];
    // 读取数据到缓冲区
    int length = inputStream.read(buf);
    // 将缓冲区中的数据转换为字符串
    String data = new String(buf, 0, length);
    System.out.println("接收到数据:" + data);
    
    // 关闭连接
    socket.close();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码中,我们创建了一个Socket对象,并指定要连接的服务器的IP地址和端口号。然后,获取输出流,使用write()方法发送数据到服务器。接着,获取输入流,使用read()方法从服务器接收数据,并将数据转换为字符串进行打印。最后,关闭连接。

通过上面的代码示例,我们可以实现Java中使用Socket类实现网络连接与通信。使用Socket类可以轻松实现客户端与服务器之间的数据传输,是实际开发中常用的网络编程技术之一。