使用Java进行网络编程:Socket通信实例

原创 r囧r小猫 2024-12-06 23:27 99阅读 0赞

在Java中,我们可以使用Socket类来进行网络编程中的Socket通信。以下是一个简单的实例,客户端和服务器端各部分:

客户端(ServerRequest.java):

  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.net.Socket;
  4. public class ServerRequest {
  5. public static void main(String[] args) {
  6. try {
  7. // 创建Socket连接
  8. Socket socket = new Socket("localhost", 1234); // 服务器IP和端口
  9. // 获取输入流,用于读取数据
  10. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())));
  11. // 从输入流中读取数据并打印出来
  12. String response = "";
  13. while ((response = in.readLine()) != null) {
  14. System.out.println(response);
  15. }
  16. // 关闭资源
  17. socket.close();
  18. in.close();
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. }

服务器端(Server.java):

  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. // 创建一个ServerSocket,用于监听客户端连接请求
  7. ServerSocket serverSocket = new ServerSocket(1234); // 服务器端口
  8. System.out.println("Server is listening on port 1234...");
  9. while (true) { // 无限循环,等待客户端连接
  10. // 获取一个Socket,与客户端建立连接
  11. Socket socket = serverSocket.accept();
  12. System.out.println("Client connected from address " + socket.getRemoteSocketAddress()));
  13. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))); // 接收客户端数据
  14. String response = "Server received your message: ";
  15. while ((response = in.readLine()) != null) {
  16. System.out.println(response);
  17. // 这里可以根据实际需求处理接收到的数据
  18. }
  19. // 发送服务器响应给客户端
  20. PrintWriter out = new PrintWriter(socket.getOutputStream(), true)); // 获取输出流,用于向客户端发送数据
  21. out.println(response + "Your message has been processed by the server")); // 发送回应信息
  22. out.flush(); // 必须调用flush以确保所有的输出被发送出去
  23. socket.close(); // 关闭Socket连接
  24. }
  25. }
  26. }

以上两个程序,一个客户端向服务器端发送数据,另一个服务器端接收到数据并返回响应。请确保在运行此示例时,你的计算机已经连接到网络并且没有防火墙等安全设置阻止连接。

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

发表评论

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

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

相关阅读

    相关 使用网络编程进行 socket 通信

    > 如果您觉得本博客的内容对您有所帮助或启发,请关注我的博客,以便第一时间获取最新技术文章和教程。同时,也欢迎您在评论区留言,分享想法和建议。谢谢支持! 一、网络编程和so