利用Java函数实现TCP/IPSocket编程
发布时间:2023-11-22 17:07:44
在Java中,可以使用java.net包下的Socket和ServerSocket类来实现TCP/IPSocket编程。
首先,需要创建一个服务器端程序来监听客户端的连接请求。以下是一个简单的服务器端程序的实现:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,并指定监听的端口号
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
// 监听客户端的连接请求
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
// 获取输入流,读取客户端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 获取输出流,向客户端发送数据
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
// 循环读取客户端发送的数据
String line;
while ((line = reader.readLine()) != null) {
System.out.println("客户端发送的数据:" + line);
// 向客户端发送响应数据
writer.println("服务器已接收到数据:" + line + ",并进行了处理!");
}
// 关闭资源
writer.close();
reader.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
接下来,可以创建一个客户端程序来连接服务器并发送数据。以下是一个简单的客户端程序的实现:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器的IP地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
// 获取输入流,读取服务器发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 获取输出流,向服务器发送数据
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
// 向服务器发送数据
writer.println("Hello, Server!");
// 接收服务器的响应数据
String response = reader.readLine();
System.out.println("服务器响应数据:" + response);
// 关闭资源
writer.close();
reader.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过运行以上的服务器端程序和客户端程序,可以实现基本的TCP/IPSocket通信。服务器端会监听客户端的连接请求,接收并处理客户端发送的数据,并向客户端发送响应数据。
在实际的应用中,可以根据需要进行扩展和优化,例如对接收到的数据进行协议解析和业务处理等。
