21xrx.com
2024-12-22 23:18:22 Sunday
登录
文章检索 我的文章 写文章
Java多线程实现加法服务器
2023-07-13 15:04:30 深夜i     --     --
Java、多线程、实现、加法、服务器

Java是一种跨平台的高级编程语言,非常适用于服务器端应用程序的开发。而在服务器端应用程序中,多线程技术是非常重要的一环。本文将介绍Java多线程实现加法服务器的原理和示例。

一、原理

加法服务器是指能接收客户端请求并执行加法运算的服务器。Java多线程实现加法服务器的原理为:首先创建一个服务器端程序,使用ServerSocket类监听指定的端口,等待客户端向其发起连接请求;然后在服务器端,为每个客户端连接请求创建一个独立的线程进行处理,线程中通过Socket类获取客户端数据,执行加法计算,将结果返回给客户端。

二、示例

以下是Java多线程实现加法服务器的示例代码:


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class AddServer {

  public static void main(String[] args) {

    try {

      ServerSocket serverSocket = new ServerSocket(8888); // 创建ServerSocket对象,监听端口8888

      System.out.println("服务器已启动,等待客户端连接...");

      while (true) { // 无限循环,等待客户端连接请求

        final Socket socket = serverSocket.accept(); // 阻塞等待客户端连接

        System.out.println("客户端连接成功!");

        new Thread(new Runnable() { // 为每个客户端连接请求创建一个线程进行处理

          @Override

          public void run() {

            try {

              BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 创建输入流读取客户端数据

              PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true); // 创建输出流向客户端发送数据

              while (true) { // 无限循环,等待客户端发送数据

                String line = reader.readLine(); // 读取客户端数据

                if (line == null) 则跳出循环

                  break;

                

                System.out.println("收到客户端请求:" + line);

                String[] nums = line.split(","); // 解析客户端数据

                if (nums.length == 2) { // 如果数据格式合法,则执行加法运算

                  int num1 = Integer.parseInt(nums[0]);

                  int num2 = Integer.parseInt(nums[1]);

                  int sum = num1 + num2;

                  writer.println("计算结果为:" + sum); // 向客户端返回计算结果

                } else { // 如果数据格式不合法,则返回错误信息

                  writer.println("输入格式不正确,请重新输入!");

                }

              }

              socket.close(); // 关闭socket连接

            } catch (Exception e) {

              e.printStackTrace();

            }

          }

        }).start();

      }

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

在客户端,可以通过以下代码向服务器发送加法请求:


import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.Socket;

public class AddClient {

  public static void main(String[] args) {

    try {

      Socket socket = new Socket("localhost", 8888); // 创建socket连接服务器

      BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 创建输入流读取服务器数据

      PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true); // 创建输出流向服务器发送数据

      writer.println("1,2"); // 向服务器发送加法请求

      String line = reader.readLine(); // 读取服务器返回的计算结果

      System.out.println(line); // 输出计算结果

      socket.close(); // 关闭socket连接

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

三、总结

Java多线程实现加法服务器是一个较为简单的网络编程示例,但其涵盖了Java多线程和网络编程的基本知识,对于Java程序员来说是一个不错的入门练习。同时,多线程技术应用于服务器端应用程序中,可以大大提高应用程序的并发处理能力和响应速度,是服务器端应用程序开发中非常重要的一项技术。

  
  
下一篇: C++中的final类

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章