使用 java 网络编程,实现 socket 单向通信t 1.服务端向客户端发送消息;一 2. 客户端接收消息,并将消息内容打印到控制台,然后再保存至 msg.tzt 文件;
时间: 2025-06-15 18:23:52 浏览: 14
在 Java 中,使用 Socket 进行单向通信可以分为服务端和客户端两个部分。这里是一个简单的示例:
**1. 服务器端(Server)向客户端发送消息**
```java
import java.io.*;
import java.net.*;
public class Server {
private static final int PORT = 9090;
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(PORT);
System.out.println("Server started on port " + PORT);
Socket clientSocket = null;
try {
clientSocket = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String message = "Hello from Server!"; // 想要发送的消息
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
out.println(message);
System.out.println("Message sent to client: " + message);
} finally {
if (clientSocket != null)
clientSocket.close();
server.close();
}
}
}
```
在这个服务端代码中,我们创建了一个 `ServerSocket` 来监听连接,当有客户端连接时,我们接受并创建一个新的 `Socket`。然后读取客户端的输入流,并通过输出流向客户端发送消息。
**2. 客户端(Client)接收消息并保存**
```java
import java.io.*;
import java.net.*;
public class Client {
private static final String SERVER_ADDRESS = "localhost";
private static final int PORT = 9090;
public static void main(String[] args) throws IOException {
Socket socket = new Socket(SERVER_ADDRESS, PORT);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String receivedMessage;
while ((receivedMessage = in.readLine()) != null) {
System.out.println("Received message from server: " + receivedMessage);
saveToDisk(receivedMessage); // 存储到文件的功能
}
socket.close();
// 函数 saveToDisk(String content)
private static void saveToDisk(String content) {
File file = new File("msg.txt");
try (PrintWriter writer = new PrintWriter(file)) {
writer.println(content);
System.out.println("Message saved to msg.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
客户端首先建立与服务器的连接,然后从输入流读取服务器发送的消息。每接收到一行,就将其打印到控制台,并调用 `saveToDisk()` 函数将内容保存到名为 `msg.txt` 的文件中。
阅读全文
相关推荐



















