代码功能简述

上传人:206****923 文档编号:51761630 上传时间:2018-08-16 格式:PPT 页数:5 大小:81KB
返回 下载 相关 举报
代码功能简述_第1页
第1页 / 共5页
代码功能简述_第2页
第2页 / 共5页
代码功能简述_第3页
第3页 / 共5页
代码功能简述_第4页
第4页 / 共5页
代码功能简述_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《代码功能简述》由会员分享,可在线阅读,更多相关《代码功能简述(5页珍藏版)》请在金锄头文库上搜索。

1、代码功能简述 使用C/C+实现Socket聊天程序: TCP版:服务器端用户和客户端用户在成功连 接后,其中一方通过控制台输入消息,依次轮 流向另一方发送数据。要求,服务器端首先发 起会话,并且双方每次只能发送一条消息。 UDP版:任一端用户通过指定IP地址将消息 发送到另一端的用户。交互双方通过控制台输 入消息向另一方发送数据。没有任何发送限制 解决该问题的整体方案有两种 :(1)基于TCP的Socket连接; (2)基于UDP的Socket连接; 但是,针对每种方案又各有很多具体 的实现方法。 在本次实验中,我先后开发了基于 TCP连接和UDP连接的Socket聊天程 序。 基于TCP连接

2、Socket聊 天程序基于该连接的聊天程序需要至少具备一个服务器 端(Server)和一个客户端(Client)。在本程 序中,一个用户作为Server端,另一个用户作为 Client端。也就是说,作为Server端的用户,需 要首先启动程序,等待Client端的连接请求。当 TCP连接握手以后,双方方可进行交互。(注: 在本程序中Server端并不是单独存在。它也可以 向他的Client端发送消息。)但是本程序实现的 交互功能十分简单,具有很多限制。当Client端 与Server端握手以后,Server端需要首先发起会 话;Client端在收到消息后再回复一条消息给 Server端;同样,

3、Server端在收到消息后再回复 一条消息给Client端以此类推。并且,无论 是Server端还是Client端每次发送消息只能发送 一条。基于UDP连接Socket聊天程序n基于该连接的聊天程序不需要具备服务器端(Server),每个客户 端(Client)既是服务器端也是客户端。也就是说每个Client端自身 既可以自行接收其它用户发来的消息,也可以向其它Client端发送 消息,不需要事先与其他用户进行握手连接。n由于在默认情况下WinSock接口的recvfrom()和sendto()都会在被调 用时阻塞当前线程,也就是说如果程序正在接受其他用户发来的数 据,那么它就不能够执行发送数

4、据的任务,反之相同。所以为解决 该问题一般有以下几种解决方案:采用Select模型、 WSAAsyncSelect模型、WSAEventSelect模型、重叠(Overlapped) 模型和完成接口(Completion port)模型。在本程序中,由于我没 能在短时间内学会上述方案中的任一种,因此采用了多线程技术去 实现消息接收和发送的同步问题。也就是说,在程序中创建两个线 程,一个线程负责发送消息,另一个消息负责接受消息。两个线程 交替运行,从而达到同时收发消息的目的。当然采用多线程方式解 决消息收发同步问题可以移除上个程序中每个用户一次只能发送一 条消息的限制。开发的收获n理解了TCP连接和UDP连接 的基本原理和工作过程。n复习了关于Windows多线程 及进程同步的相关知识。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号