vc高级程序设计大作业_基于局域网的聊天室设计与开发内容摘要:
FC 给出了 CSocket类,这个类继承 于 CAsyncSocket 类,它提供了比 CAsyncSocket 更高层的 WinSock API 接口。 相比起来, CSocket 类代表了一个比 CAsyncSocket 对象更高层次的 Windows Socket的抽象, CSocket 类与 CSocketFile 类和 CArchive 类一起工作来发送和接收数据, 除此之外CSocket 类和 CSocketFile 类可以与 Carchive 类一起合作来管理发送和接收的数据,这使管理数据收发更加便利 , 因此使 用 CSocket 类编写网络应用程序更加方便。 但是它牺牲掉了北京信息科技大学 6 CAsyncSocket 类 的灵活性。 同时 CSocket 对象提供阻塞模式, 所谓 阻塞 是指 直到操作完成后才返回控制权 , 在完成操作返回之前 进程被挂起, 什么也不能做。 常见的阻塞函数有 Receive()、 Send()、ReceiveFrom()、 SendTo() 和 Accept()。 假如 一个 socket 处于非阻塞模式(即异步操作),则会被调用函数立即返回 ,通信效率较高。 对于 CAsyncSocket 类可以用 GetLastError 成员函数查询最后的错误,如果错误 返回值为 WSAEWOULDBLOCK, 则说明有阻塞,而CSocket 绝不会返回 WSAEWOULDBLOCK, 因为它在自己类的内部已经实现了阻塞管理,减轻了程序员负担,但是却牺牲了通信的高效性。 是不是使用 CSocket 类就不能实现类 似 CAsyncSocket 类 的高效非阻塞操作呢。 也不是,使用使用 多线程的方法既可以使程序员享受 CSocket 带来的简化编程的便利,也不会影响用户界面对用户的反应 ,可谓一举两得。 综合上述各个因素以及两个类的特点可以得知, 如果需要低层控制和高效率,就使用CAsyncSock 类;如果需要方便,则可使用 CSocket 类 ;如果既想编程方便又想高效率通信,则可以联合使用 CSocket 类和多线程编程 [4]。 类编程模型 当我们在 使用 CSocket 对象 编写网络通信应用程序时候,需要 涉及 到 CArchive 类 和CSocketFile 类对象。 以下介绍的针对字节流型套接字 CSocket 类编程模型的实现过程 中,服务器方和客户方的实现过程几乎没有什么差异,唯一的区别仅在 第 2 步。 1. 使用 CSocket 类产生一个 对象 ,然后调用 CSocket 类对象的成员函数 Create()产生一个 Socket 句柄。 这个过程 对于数据报套接字, CAsyncSocket 和 CSocket 的使用方法没有什么区别。 2. 在这里,我们要分服务器与客户端区分对待。 假如第一步创建的是 客户方套接字,调用 CSocket 类的基类成员函数 CAsyncSocket ∷ Connect() 来与 服务方套接字连接; 反之, 如果 在前面我们创建的是 服务方套接字, 那么就要开始监听,相应的 调用 基类的成员函数 CAsyncSocket∷ Listen()开始监听来自客户方的连接请求, 当服务器方正确收到客户方的 连接请求后, 服务器方 调用 CAsyncSocket∷ Accept( )成员函数来响应 接受请求,并且 建立连接。 同样地, Accept()成员函数 的参数为 一个新的并且为空的 CSocket 对象。 3. 接着我们就需要构造一个 CSocketFile 对象, 并且将 它与 CSocket 对象 关联起来 ,以便供后面的通信使用。 北京信息科技大学 7 4. 在完成前面一些列的准备工作后,我们就要正式开始接收和发送数据了。 为了完成这个工作,首先我们 为接收和发送数据 各构建 一个 CArchive 对象, 与此同时将 它们与 上面构造的 CSocketFile 对象 也 关联起来。 在这里我们需要特别注意的是, CArchive 类 是不能和数据报套接字一起工作 ,实现数据接收和发送 的。 5. 在客户与服务方 使用 CArchive 对象的 Read()、 Write()等函数传送 、接收 数据。 6. 当服务方和客服方结束双方的通信后 , 完成一系列的清理工作,具体工作 是先后 销毁 CArchive、 CSocketFile 和 CSocket 对象 []。 的聊天室 设计 系统总体目标 服务器端: 1. 服务器端可以设置开放的端口,并且可以自动检查端口是否设置的正确; 2. 服务器端可以自动获取本机的 IP 地址和主机名称; 3. 服务器器可以自动监听开放的端口,看是否有客户端连接; 4. 聊天区的信息可以自动换行,可以使用回车键发送信息; 5. 服务器端可以自动获取连接客户端的基本信息; 6. 服务器端可以统计在线的客服端,以及相应的信息; 客户端: IP 地址和端 口,同时客户端可以设置自己的昵称; ,可以自动检查端口和 IP 地址是否正确,如果不正确,能给出提示信息; ,能提示用户相应的信息。 系统功能模块图 系统包括客服端程序和服务器端程序,服务器端包括:( 1)设置 IP 地址和端口模块;( 2)北京信息科技大学 8 监听模块;( 3)聊天模块;( 4)统计在线人数模块;( 5)退出模块。 客户端包括:( 1)连接模块;( 2)聊天模块;( 3)退出模块。 具体功能模块示意图见图 2 所示。 基 于 局 域 网 的 聊 天 室服务器客服端连接服务器聊天模块退出模块设置I P地址和端口监听端口聊天模块统计在线人数模块退出模块 图 2 系统功能模块图 的聊天室 实现 服务器开启与客户连接以及局域网通信 在 TCP/IP 网络应用中,通信的两个进程间相互作用的主要模式是客户机 /服务器模式(client/server),客户机 /服务器模式在操作过程中采取的是主动请求的方式,即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。 C/S 模式的具体原理如下: 服务器: 1. 服务器打开一个通信通道并且通知本地主机,它愿意在某一地址和端口上接收客户方的请求; 2. 监听打开的端口,等待客户方的请求到达该端口; 3. 服务器接收 到客户请求,处理该请求,然后发送应答信号,与此同时激活一个新的进程 (或线程 ),用来专门处理这个客户请求。 激活的新进程 (或线程 ) 仅需要处理北京信息科技大学 9 此客户请求,并不需要对其它请求作出响应或者应答。 当服务关闭后,关闭此新进程与客户的通信链路,并且终止; 4. 返回第二步,继续监听端口,等待另一客户的请求; 5. 关闭服务器。 客户方: 1. 服务器方打开一个通信通道,并连接到服务器方打开的特定端口; 2. 向服务器发送服务请求报文,等待并接收服务器方的应答;继续向服务方提出请求; 3. 请求结束后,关闭自己打开通信通道,并且终止。 下面将分别从服务器端与客户端两个方面详细介绍使用 CSocket 类、基于 TCP/。vc高级程序设计大作业_基于局域网的聊天室设计与开发
相关推荐
阴阳片、药膜面、打样与否、打样纸要求等等 .并且能够选择要出菲林的文件上传 .从而初步实现了电子商务的基本功能-客户在线上落订单。 当然 .更进一步的应用还可以扩展为购物车、订单管理、客户管理、线上支付等。 数据库的建立(在线书店数据库) 在线书店数据库 (shopguan) My_Book 图书信息 (商店图书表) 字段名称 字段类型 字段大小 字 段说明 备注 Id int 4 ID序列号
5) 依照“股东投票代理协议”中的规定履行义务,并不得违反该协议; 6) 不得利用股东身份以任何形式干涉乙方对 A公司的管理; 7) 未经乙方同意,不得将其在 A公司的股东权利委托或授予除乙方以外的第三方; 8) 未经乙方同意,不得以其他方式委托除乙方以外的第三方以任何方式管理 A公司; 9) 不 得以任何理由单方终止本协议,或 10) 享有本协议规定的其他权利和履行其他义务。 根据协议条款
加热炉 F8 负载调节 调节电机转动圈数 F9 试件夹紧 螺纹链接夹紧 F10 调节对偶试件的贴合 调节丝杠上的转轮 F11 载荷的测量 测量弹簧压缩长度 F12 摩擦力测量 扭矩传感器 F13 摩擦系数的测量 由测得的摩擦力和载荷通过计算机自动得出 F14 速度的测量 测速电机 F15 温度的测量 测量热电偶 F16 自动记录和显示 计算机控制 济南大学 泉城学院 毕业设计 12 3
假设空气只有 O N2分别为 21%、 79%,则空气中总氧量为P2P2 理论需氧量: — O2P 所以 P2P2P2 O1 若燃烧完全P2P2P2 O1 若燃烧不完全产生 CO 须校正,即从测得的过剩氧中减 CO 氧化为 CO2所需的 O2 PP2P2 PP2 各组分的量均为奥氏分析仪所测得的百分数。 物料平衡核算 吸收塔的物料平衡
................... 54 连接参数 ....................................................................................................................... 55 零件计算 ...........................................
下 8个数据位: 1 1 0 0 0 1 0 1 整个 “1”的数目是 4个。 如果便用了偶校验,帧的奇偶校验位将是 0,便得整个 “1”的个数仍是 4个。 如果便用了奇校验,帧的奇偶校验位将是 1,便得整个 “1”的个数是 5个。 如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。 代替一附加的停止位填充至要传输的字符帧中。 LRC检测 使用 ASCII模式,消息包括了一基于