Java函数实现客户端和服务端的Socket连接
发布时间:2023-07-01 08:30:21
Java中可以使用Socket来建立客户端和服务端之间的连接。Socket是用于描述IP地址和端口的类,它提供了connect()和accept()方法来建立连接。
客户端实现:
首先,创建一个Socket对象,通过指定服务器的IP地址和端口号来连接到服务器。然后,通过Socket的getOutputStream()方法获取输出流,使用输出流向服务器发送数据。最后,使用Socket的getInputStream()方法获取输入流,通过输入流接收服务器端的响应数据。
示例代码如下:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
String serverIP = "127.0.0.1"; // 服务器IP地址
int serverPort = 8888; // 服务器端口号
try {
// 创建Socket对象
Socket socket = new Socket(serverIP, serverPort);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 向服务器发送数据
String data = "Hello Server!";
outputStream.write(data.getBytes());
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 接收服务器响应数据
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
String response = new String(buffer, 0, length);
System.out.println("Server Response: " + response);
// 关闭连接
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务端实现:
首先,创建一个ServerSocket对象,通过指定端口号来监听客户端的连接。然后,通过ServerSocket的accept()方法,获取客户端的Socket对象。接下来,使用Socket的getInputStream()方法获取输入流,通过输入流接收客户端发送的数据。最后,使用Socket的getOutputStream()方法获取输出流,向客户端发送响应数据。
示例代码如下:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
int serverPort = 8888; // 服务器监听端口号
try {
// 创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(serverPort);
System.out.println("Server started");
// 监听客户端连接
Socket socket = serverSocket.accept();
System.out.println("Client connected");
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 接收客户端发送的数据
byte[] buffer = new byte[1024];
int length = inputStream.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("Client Message: " + message);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 向客户端发送响应数据
String response = "Hello Client!";
outputStream.write(response.getBytes());
// 关闭连接
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上就是使用Java函数实现客户端和服务端的Socket连接的方法。通过Socket的connect()和accept()方法,可以在客户端和服务端之间建立连接,并通过输入流和输出流进行数据的传输。
