zoukankan      html  css  js  c++  java
  • 网络课设总结(五)——利用CAsyncSocket进行异步通信

          上一篇文章,我给大家提供了服务器监听套接字的基本代码,这一篇文章,让我们一起来看看客户端的代码!!!

          由于,我要完成的功能是在一个对话框里轮流显示和管理多个服务器和多个客户端,因此在建立套接字类的时候费了一番脑筋;在此我将整个过程描述出来,也许对面向对象的程序设计有一点启示。

    初步方案:

    服务器端的职责是监听和数据通信,客户端的功能是数据通信;好的,我直接就这么考虑了,我需要一个监听套接字类,一个数据通信套接字类,然后在以数据通信套接字和监听套接字为成员变量构成服务器端套接字类;客户端类直接用数据通信套接字。首先,这个想法在思维上很顺利,看起来顺理成章,在实现的时候却发现,服务器端有这样的问题:一个服务器端套接字可以对应多个客户端;好的,那么在处理服务器端的管理问题的时候,我发现,服务器端的本质是什么?监听,对就是监听。除了监听,没有别的。

    改进方案:

    服务器端只负责监听,一个监听套接字类足够;如果收到客户端的连接请求,则在本机创建一个“客户端”,与那个客户端通信!!!至少到目前看来,这个方案还是比较优化的。

            总结:在这过程中,我感觉面向对象的思想博大精深,我的领会还很肤浅。在改进的过程中,感觉对自己最大的一个帮助就是,明确系统中每个对象的职责,从本质上去理解问题。

    1、lientSocket.h:

    2、OnConnect函数

    3、OnReceive函数

  • 相关阅读:
    LG5283 异或粽子
    LG2216 理想的正方形
    LG1484 种树
    洛谷3721 HNOI2017单旋(LCT+set+思维)
    洛谷3348 大森林 (LCT + 虚点 + 树上差分)
    CF1082E Increasing Frequency (multiset+乱搞+贪心)
    CF1082G Petya and Graph(最小割,最大权闭合子图)
    cf1082D Maximum Diameter Graph(构造+模拟+细节)
    洛谷3320 SDOI2015寻宝游戏(set+dfs序)(反向迭代器的注意事项!)
    CF613D Kingdom and its Cities(虚树+贪心)
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742739.html
Copyright © 2011-2022 走看看