网络编程:JavaSocket和ServerSocket在通信中的应用案例
Java Socket和ServerSocket在网络编程中扮演着重要的角色,主要应用于客户端与服务器之间的数据交互。以下是一个简单的应用案例:
客户端(使用Socket)
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建Socket对象
Socket socket = new Socket("localhost", 1234); // "localhost" 是服务器的IP地址
// 获取数据输出流
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
// 发送字符串数据
String message = "Hello, Server!";
byte[] bytes = message.getBytes();
out.write(bytes);
// 关闭流和Socket
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器(使用ServerSocket)
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
// 创建ServerSocket对象,绑定到特定端口
ServerSocket server = new ServerSocket(1234); // "localhost" 的1234端口
System.out.println("Server is listening on port 1234...");
// 等待客户端连接请求
Socket client = server.accept();
System.out.println("Client connected from IP: " + client.getInetAddress().getHostAddress());
DataInputStream in = new DataInputStream(client.getInputStream()));
DataOutputStream out = new DataOutputStream(client.getOutputStream()));
// 读取并打印客户端发送的数据
byte[] messageBytes = new byte[1024];
int bytesRead = in.read(messageBytes);
if (bytesRead > 0) {
String receivedMessage = new String(messageBytes, 0, bytesRead));
System.out.println("Received message from client: " + receivedMessage);
// 向客户端发送确认信息
out.writeBoolean(true);
out.writeUTF("Server acknowledged your message!");
} else {
System.out.println("No data received from client.");
}
// 关闭输入流、输出流和Socket连接
in.close();
out.close();
client.close();
}
}
这个案例中,客户端发送一条消息给服务器,服务器接收并确认了这条消息。这样就实现了简单的客户端-服务器数据交互。
还没有评论,来说两句吧...