Java网络编程:客户端服务器通信问题实例

原创 た 入场券 2024-09-25 02:42 163阅读 0赞

在Java网络编程中,客户端与服务器之间的通信通常涉及到Socket、ServerSocket、TCP/IP等协议。以下是一个简单的实例,演示了客户端向服务器发送消息的过程:

  1. 创建服务器端(Server Side)
  1. import java.io.*;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4. public class Server {
  5. public static void main(String[] args) throws IOException {
  6. // 设置监听的端口
  7. int port = 9999;
  8. // 创建ServerSocket
  9. ServerSocket serverSocket = new ServerSocket(port);
  10. System.out.println("Server is listening on port " + port);
  11. // 等待客户端连接
  12. Socket socket = serverSocket.accept();
  13. System.out.println("New connection from: " + socket.getRemoteSocketAddress()));
  14. // 读取客户端发送的数据
  15. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
  16. String messageFromClient = in.readLine(); // 获取消息
  17. System.out.println("Message received from client: " + messageFromClient));
  18. // 向客户端发送消息
  19. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))));
  20. out.write("Server replied to client: " + messageFromClient); // 发送消息
  21. out.flush();
  22. }
  23. }
  1. 创建客户端(Client Side)
  1. import java.io.*;
  2. import java.net.*;
  3. public class Client {
  4. public static void main(String[] args) throws IOException {
  5. // 客户端连接到服务器的IP和端口
  6. String serverAddress = "localhost"; // 更改为你的服务器实际IP
  7. int serverPort = 9999; // 保持为服务器端设置的端口
  8. System.out.println("Connecting to Server on IP: " + serverAddress + " and Port: " + serverPort);
  9. try (Socket socket = new Socket(serverAddress, serverPort)))) {
  10. // 操作连接成功的Socket
  11. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))));
  12. BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))));
  13. System.out.println("Connection Established. Sending message...");
  14. // 发送消息
  15. String clientMessage = "Hello from Client!"; // 更改为你要发送的实际信息
  16. out.write(clientMessage); // 发送数据
  17. out.flush();
  18. System.out.println("Client Message sent. Receiving server response...");
  19. // 读取服务器响应
  20. String serverResponse = in.readLine(); // 获取消息
  21. System.out.println("Server Response: " + serverResponse);
  22. } catch (SocketException e) {
  23. System.err.println("Error Connecting to Server: " + e.getMessage());
  24. } catch (IOException i) {
  25. System.err.println("Error Sending Message or Receiving Response: " + i.getMessage());
  26. }
  27. }
  28. }
  1. 运行客户端和服务器(双端运行)

分别在你的开发环境中运行这两个程序。当客户端发送消息后,你会看到服务器的响应。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,163人围观)

还没有评论,来说两句吧...

相关阅读