网络通信问题:JavaSocket编程实例
JavaSocket编程是Java网络编程中的一部分,用于建立客户端和服务器之间的TCP连接。以下是一个简单的JavaSocket编程实例,创建一个客户端向服务器发送数据:
- 创建ServerSocket(服务器端监听)
```java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// 设置服务器端口
int port = 8888;
// 创建并初始化ServerSocket对象
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server is listening on port " + port + "...");
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket);
// 与客户端进行数据通信
handleClient(clientSocket);
}
private static void handleClient(Socket clientSocket) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())));
// 从客户端接收数据
String messageFromClient = in.readLine();
System.out.println("Received from client: " + messageFromClient));
// 向客户端发送数据
OutputStream out = clientSocket.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out)));
String responseToClient = "Server replied: " + messageFromClient;
writer.write(responseToClient);
writer.flush();
in.close();
out.close();
clientSocket.close();
}
}
2. 创建ClientSocket(客户端向服务器发送数据)
```java
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
// 设置客户端连接的地址和端口
String serverAddress = "localhost"; // 服务器IP或域名
int port = 8888; // 服务器端口
// 创建Socket对象,连接到指定的服务器端口
Socket socket = new Socket(serverAddress, port));
System.out.println("Client connected to the server at address: " + serverAddress + ":" + port + "...");
// 向服务器发送数据
sendDataToServer(socket);
}
private static void sendDataToServer(Socket socket) throws IOException {
// 创建一个用于写入的OutputStream对象
OutputStream outputStream = socket.getOutputStream();
// 编写你要发送的数据(例如,一个字符串)
String messageToSend = "Hello, Server!"; // 自定义需要发送的内容
// 将数据转换为字节流
byte[] bytesToSend = messageToSendToSend.getBytes(); // 使用UTF-8编码
// 向服务器输出这些字节
outputStream.write(bytesToSend);
// 关闭OutputStream,以释放资源
outputStream.close();
}
}
- 运行两部分程序(服务器和客户端)
这样你就创建了一个基本的JavaSocket客户端向服务器发送数据的例子。根据实际需求,你可以在此基础上添加更多的功能。
还没有评论,来说两句吧...