• 基于JAVA的网络通讯系统设计与实现免费LW+系统


    2.4 系统开发及运行环境
    (1) 系统开发平台:本系统采用eclipse 及WINDOWSXP设计。
    (2) 硬件环境:
    运行本系统的硬件基本要求如下:
    CPU:Intel P3及以上;
    内存:256MB及以上;
    硬盘:40GB及以上。
    (3) 数据库管理系统软件:SQL Server 2000。
    第3章 系统总体设计
    3.1 总体构架
    基于Java的网络聊天系统设计与实现主要考虑三个个方面的设计,即服务器模块设计,服务器客与客户端通信规则设计和客户端模块设计,本系统整体构架如图3.1所示。
    在这里插入图片描述
    确指定这个连接数,默认最大连接数为50,也就是说,客户端的请求队列最大可以容纳50 个请求,当超过这个最大连接数时,用户的请求将不再会被响应。利用SocketServer也提供了一些方法,它们主要有:
    accept() 返回一个“已连接”的Socket 对象
    getInetAddress() 得到该服务器的IP 地址
    getLocalPort() 得到服务器所侦听的端口号
    setSoTimeout() 设置服务器超时时间
    getSoTimeout() 得到服务器超时时间
    服务器和客户端通过Socket简单通信框架下图所示。
    在这里插入图片描述
    5.2.1多线程服务器模块实现
    服务器模块核心功能是使用Socket Server实现多线程的服务器,针对每一个客户建立一个单独的线程处理客户端的请求。其具体思路是,首先建立Socket Server,并绑定服务器IP和某个未使用的端口。然后监听该端口,如果有客户端的Socket连接则建立一个客户端线程ClientThread类对象,有该对象处理该客户的一些请求,并在ClientThread中保存User Bean对象,该对象保存了用户的一些基本信息,比如账号、密码、年龄、是否在线等。如果服务器没有关闭Socket Server则服务器则一直处理客户端连接。其核心代码如下。

    public class MessageServer extends Thread {
    //服务器端SocketServer
    private ServerSocket server;
    private boolean isStop = false;
    public MessageServer(int port) throws IOException {
    server = new ServerSocket(port);
    }
    /**

    • 消息服务
      */
      public void run() {
      Socket client;
      try {
      while (!isStop) {
      //建立处理客户端连接的线程
      client = server.accept();
      (new ClientThread(client)).start();
      }
      } catch (IOException e) {
      e.printStackTrace();
      } finally {
      if (server != null) {
      try {
      server.close();
      } catch (IOException e1) {
      // e1.printStackTrace();
      }
      }
      isStop = true;
      }
      }
      }
  • 相关阅读:
    jupyter notebook anaconda环境下查看|加载|更换内核
    【WLAN】【调试】Windows系统下,如何查看无线(WLAN)相关日志
    微信公众号开发:网页授权
    MySQL常用函数汇总(字符串、时间函数等)
    Java进阶知识复习笔记(三):函数式编程
    全栈自动化测试之python基础面对对象之类和继承
    Pangolin安装报错解决
    java计算机毕业设计学生综合考评管理系统源码+数据库+系统+lw文档+mybatis+运行部署
    【Java初阶】Array详解(上)
    浅谈用Redis实现分布式锁的方案及细节
  • 原文地址:https://blog.csdn.net/bwwork/article/details/126939148