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

Java网络函数:Socket、ServerSocket等网络编程函数实战操作分享

发布时间:2023-06-21 07:21:47

作为一门面向对象的编程语言,Java在网络编程方面也有着很好的支持,其中Socket和ServerSocket是Java网络编程中使用最多的函数。在这篇文章中,我们将详细介绍这两个函数的用法,并通过实战操作来加深理解。

一、Socket函数

Socket是Java中用于实现客户端和服务器之间基于网络的通信的函数。下面我们通过实例来学习Socket函数的使用方法。

1.创建Socket对象

在创建Socket对象之前,我们首先需要确保服务器已经启动并且正在监听来自客户端的连接。接下来我们就可以使用Java的Socket类来创建网络连接,其中Socket类的构造方法有两种:一个是指定IP地址和端口号,另一个是直接使用默认的IP地址和端口号连接服务器。

使用指定IP地址和端口号的构造方法:

String serverName = "localhost";  // 连接的服务器地址
int port = 5000;  // 连接的服务器端口号
Socket socket = new Socket(serverName, port);

直接使用默认的IP地址和端口号连接服务器:

Socket socket = new Socket("localhost", 5000);

2.发送数据

在创建Socket对象后,我们可以使用getOutputStream()方法来获取Socket的输出流,并使用write()方法将数据发送到服务器。

OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("Hello from " + socket.getLocalSocketAddress());

3.接收数据

在向服务器发送完数据之后,我们需要使用getInputStream()方法来获取Socket的输入流,并使用read()方法来读取服务器传来的数据。

InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
System.out.println(dataInputStream.readUTF());

4.关闭Socket连接

一旦我们完成了数据交换,我们需要调用Socket的close()方法来关闭连接。

socket.close();

二、ServerSocket函数

ServerSocket是Java中用于实现服务器端基于网络的通信的函数。下面我们通过实例来学习ServerSocket函数的使用方法。

1.创建ServerSocket对象

在创建ServerSocket对象之前,我们需要确定服务器监听的端口号。接下来我们就可以使用Java的ServerSocket类来创建服务器,并开始监听客户端的连接。

int port = 5000; // 服务器监听的端口号
ServerSocket serverSocket = new ServerSocket(port);

2.等待客户端连接

使用accept()方法来等待来自客户端的连接,该方法一旦有客户端连接成功就会立即返回一个Socket对象,从而开启服务器与客户端之间的通信。

System.out.println("Waiting for client to connect...");
Socket socket = serverSocket.accept();

3.接收客户端数据

当客户端在Socket连接上发送数据请求后,服务器可以使用getInputStream()方法来获得客户端发送的数据,并使用read()方法来读取客户端发送的数据。

InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
System.out.println(dataInputStream.readUTF());

4.发送数据到客户端

一旦服务器接收到来自客户端的数据后,可以使用getOutputStream()方法来获得Socket的输出流并使用write()方法将数据发送回客户端。

OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("Hello from server...");

5.关闭ServerSocket对象

当完成了与客户端的通信后,我们需要使用close()方法来关闭ServerSocket对象以释放资源。

serverSocket.close();

总结

Socket和ServerSocket是Java网络编程中非常重要的函数,对于Java网络编程的学习和实践都是非常必要的。希望本篇文章的实例操作能够帮助您更深入地了解这两个函数的使用方法和注意事项。