网络编程:JavaSocket和ServerSocket在通信中的应用案例

原创 - 日理万妓 2024-12-13 02:30 75阅读 0赞

Java Socket和ServerSocket在网络编程中扮演着重要的角色,主要应用于客户端与服务器之间的数据交互。以下是一个简单的应用案例:

客户端(使用Socket)

  1. import java.io.*;
  2. import java.net.*;
  3. public class Client {
  4. public static void main(String[] args) {
  5. try {
  6. // 创建Socket对象
  7. Socket socket = new Socket("localhost", 1234); // "localhost" 是服务器的IP地址
  8. // 获取数据输出流
  9. DataOutputStream out = new DataOutputStream(socket.getOutputStream());
  10. // 发送字符串数据
  11. String message = "Hello, Server!";
  12. byte[] bytes = message.getBytes();
  13. out.write(bytes);
  14. // 关闭流和Socket
  15. out.close();
  16. socket.close();
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. }
  21. }

服务器(使用ServerSocket)

  1. import java.io.*;
  2. import java.net.*;
  3. public class Server {
  4. public static void main(String[] args) throws IOException {
  5. // 创建ServerSocket对象,绑定到特定端口
  6. ServerSocket server = new ServerSocket(1234); // "localhost" 的1234端口
  7. System.out.println("Server is listening on port 1234...");
  8. // 等待客户端连接请求
  9. Socket client = server.accept();
  10. System.out.println("Client connected from IP: " + client.getInetAddress().getHostAddress());
  11. DataInputStream in = new DataInputStream(client.getInputStream()));
  12. DataOutputStream out = new DataOutputStream(client.getOutputStream()));
  13. // 读取并打印客户端发送的数据
  14. byte[] messageBytes = new byte[1024];
  15. int bytesRead = in.read(messageBytes);
  16. if (bytesRead > 0) {
  17. String receivedMessage = new String(messageBytes, 0, bytesRead));
  18. System.out.println("Received message from client: " + receivedMessage);
  19. // 向客户端发送确认信息
  20. out.writeBoolean(true);
  21. out.writeUTF("Server acknowledged your message!");
  22. } else {
  23. System.out.println("No data received from client.");
  24. }
  25. // 关闭输入流、输出流和Socket连接
  26. in.close();
  27. out.close();
  28. client.close();
  29. }
  30. }

这个案例中,客户端发送一条消息给服务器,服务器接收并确认了这条消息。这样就实现了简单的客户端-服务器数据交互。

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

发表评论

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

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

相关阅读