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

Java中网络函数的基本使用:Socket和ServerSocket

发布时间:2023-10-11 10:50:05

在Java中,网络功能对于建立客户端和服务器之间的通信非常重要。Java提供了两个主要的类:Socket和ServerSocket,分别用于实现客户端和服务器的网络通信功能。

Socket类用于创建客户端套接字,它提供了一组方法用于建立与服务器的连接、发送和接收数据。以下是Socket类的基本使用方法:

1. 创建Socket对象:使用Socket类的构造函数创建一个Socket对象。构造函数需要传入服务器的IP地址和端口号。

String serverIP = "127.0.0.1";
int port = 8080;
Socket socket = new Socket(serverIP, port);

2. 发送数据:使用Socket对象的getOutputStream()方法获取输出流,然后使用输出流的write()方法将数据发送给服务器。

OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Server!".getBytes());

3. 接收数据:使用Socket对象的getInputStream()方法获取输入流,然后使用输入流的read()方法读取服务器发送的数据。

InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
String data = new String(buffer, 0, length);
System.out.println("Received from server: " + data);

4. 关闭连接:使用Socket对象的close()方法关闭与服务器的连接。

socket.close();

ServerSocket类用于创建服务器套接字,它监听指定的端口号,等待客户端的连接请求。以下是ServerSocket类的基本使用方法:

1. 创建ServerSocket对象:使用ServerSocket类的构造函数创建一个ServerSocket对象。构造函数需要传入要监听的端口号。

int port = 8080;
ServerSocket serverSocket = new ServerSocket(port);

2. 监听并接受连接请求:使用ServerSocket对象的accept()方法监听指定端口并接受客户端的连接请求。该方法会阻塞,直到有客户端连接成功。

Socket socket = serverSocket.accept();

3. 接收数据:使用Socket对象的getInputStream()方法获取输入流,然后使用输入流的read()方法读取客户端发送的数据。

InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
String data = new String(buffer, 0, length);
System.out.println("Received from client: " + data);

4. 发送数据:使用Socket对象的getOutputStream()方法获取输出流,然后使用输出流的write()方法将数据发送给客户端。

OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Client!".getBytes());

5. 关闭连接:使用Socket对象的close()方法关闭与客户端的连接。

socket.close();

以上是Java中Socket和ServerSocket的基本使用方法。使用这两个类可以轻松地实现客户端和服务器之间的网络通信功能。