科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件基于.NET的多用户客户端设计

基于.NET的多用户客户端设计

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文提出了模拟多用户客户端的设计方法,并给出详细代码说明

作者:于彩荣 朱正超 来源:论坛 2007年11月4日

关键字: 用户 客户端 设计

  • 评论
  • 分享微博
  • 分享邮件
1. 概述

  在C/S 模式中,服务器端往往是设计的重点。一般来说,服务器的能够承受的连接数量是衡量一个服务器性能好坏的重要标准,为了测试服务器能够承受的连接数,我们必须使用多台客户机来测试他的性能.可是,很多情况下,我们没有那么多的机器,同时使用多台机器进行测试也是浪费资源,为此,我们设计了模拟多用户客户端程序来解决这个问题。

  本文采用MFC的CSocket类在.NET平台上进行设计.所谓的模拟多用户就是用一个客户端程序来建立多个与服务器的连接,就好像多个客户端与服务器进行连接一样。设计的重点是:

   程序能够生成用户指定的数目的连接;

   用户可以在建立的连接中任意指定某个连接进行通信;

   用户可以随意更换连接进行通信测试,每个连接不会互相混淆,尤其是在读写数据的时候,不能张冠李戴;

   用户可以随意指定断开某个连接,而不会影响其他连接。

  那么这么多的连接究竟如何管理呢?

  首先,我们要有一种数据结构来描述每个连接的详细情况。本文采用了结构体。

  自定义结构体struct socket_info
{ CSocket* s_client; //保存用户的SOCKET值
u_long client_addr; //保存用户网络地址
CString username; //用户昵称
int id; //连接号
} ;

  然后,使用C++的模板类CList来管理这些连接。以后所做的所有事情就是对这个链表的操作。

  2.设计步骤:

  2.1创建一个基于对话框的工程CClientDlg.在MFC应用程序向导中选中windows 套接字。

  2.2给对话框添加菜单,并添加菜单项,包括配置服务器、用户登陆、退出、通信、断开连接。

  2.3添加"配置服务器"响应函数OnServerConfserver(),调出服务器配置对话框Server Configure。输入服务器的IP地址和端口号。

  2.4添加"用户登陆"响应函数,输入用户名和连接数,系统根据用户输入的想要建立的连接数,自动生产连接并将其放入链表中。

  2.5 添加"通信"响应函数OnCommunication(),调出通信对话框,如图1所示。点击"发送",发送数据;点击"接收",接收数据;点击"断开该连接",关闭socket,并从链表中删除该连接。

  2.6 添加"退出"菜单响应函数。遍历整个连接队列,将所有的连接断开并删除队列中所有结构体,将队列清空。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章