网络编程:JavaSocket和ServerSocket问题案例
在Java编程中,Socket(客户端)和ServerSocket(服务器端)是实现网络通信的重要类。下面是一个关于这两类的问题案例:
问题描述:
编写一个简单的Java服务端程序,该程序接受来自客户端的文本消息,并将接收到的消息原样回送给客户端。
代码示例(客户端):
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 1234)); // Connect to server
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))); // Read from server
System.out.println("Enter your message:"); // Prompt user
String userInput = in.readLine(); // Get user input
System.out.println("Message received from server: " + userInput); // Display received message
socket.close(); // Close connection
}
}
代码示例(服务端):
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(1234)); // Listen for incoming connections
while (true) { // Keep listening until stopped
Socket clientSocket = serverSocket.accept(); // Accept a connection
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))); // Read from the client
System.out.println("Received message: " + in.readLine()); // Display received message to console
// Send reply back to client
String replyMessage = "Your message has been received!";
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())));
out.write(replyMessage);
out.close();
// Close connection with client
clientSocket.close();
}
}
}
以上两段代码分别实现了客户端和服务器端。客户端发送消息给服务端,服务端接收到消息后原样返回给客户端。
还没有评论,来说两句吧...