- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCPIP大作业实现群聊或私聊课件
目录1总体设计41.1基本协议的选取41.2通信终端介绍41.3面向连接的客户端/服务器程序工作流程52用户端设计62.1客户端设计62.2服务器端设计113服务器端设计144运行结果244.1总服务器端244.2客户端1254.3客户端2251总体设计1.1基本协议的选取TCP和UDP协议属于传输层协议,本实验选择的协议是TCP协议。UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。所以使用面向连接的服务可以保证通信的可信度。本次实验基于TCP/IP协议实现基本的聊天功能,包括注册登录,群聊及私聊。1.2通信终端介绍本聊天系统共分为三块:总服务器监听客户端的连接请求提供注册服务,验证登录请求发送在线状态发送群聊、私聊消息本地客户端发送建立TCP连接请求操作发送注册、登录信息、退出请求发送群聊、私聊消息本地服务器用于接收总服务器端转发的消息并显示消息1.3面向连接的客户端/服务器程序工作流程此程序客户/服务器程序的工作流程可大致简化为一下步骤:?a)?服务器先用socket函数来建立一个套接字,用这个套接字完成通信的监听。?b)?用bind函数来绑定一个端口号和IP地址。因为本地计算机可能有多个网址和IP,每一个IP和端口有多个端口。需要指定一个IP和端口进行监听。?c)?服务器调用listen函数,使服务器的这个端口和IP处于监听状态,等待客户机的连接。?d)?客户机用socket函数建立一个套接字,设定远程IP和端口。?e)?客户机调用connect函数连接远程计算机指定的端口。?f)?服务器用accept函数来接受远程计算机的连接,建立起与客户机之间的通信。?g)?建立连接以后,客户机用write函数向socket中写入数据。也可以用read函数读取服务器发送来的数据。?h)?服务器用read函数读取客户机发送来的数据,也可以用write函数来发送数据。?i)?完成通信以后,用close函数关闭socket连接。?2用户端设计2.1客户端设计#includeWinsock2.h#includeiostream#includestringusing namespace std;#pragma comment(lib,WS2_32)#define iport 5050#define DATA_BUFFER 1024SOCKET sClient;struct sockaddr_in ser;char nickname[20]; //昵称char password[20]; //密码char isend_buf[1024];char send_buf[1024];char recv_buf[1024];char user[20][20]; //在线的人员int size=0; //在线的人数void log_register();void show_user(){coutendlendl;cout当前在线的人如下:endl;coutendl;cout****************************endl;for(int i=0;isize;i++){cout* i+1: user[i];if(strcmp(user[i],nickname)==0)cout(本人)endl;elsecoutendl;}cout****************************endl;}void get_user(char *c){ /
您可能关注的文档
- s版三年级语文上册24《说话算数》.ppt
- 电动钻机培训.ppt
- T06客滚复习题.doc
- S版四年级上册《成长》.ppt
- S版二年级上册《秋天》.ppt
- 电子探针EPMA.ppt
- s版语文二年级上册2《秋天》.ppt
- s物质的分类自己做.ppt
- S版语文二年级下册第18课《小鹿的减法》PPT.ppt
- T91钢的焊接工艺.pptx
- 2025贵州黔南州都匀市中小企业融资担保有限责任公司拟聘用人员考前自测高频考点模拟试题及完整答案详解.docx
- 2025贵州铁路投资集团有限责任公司招聘35人模拟试卷及参考答案详解1套.docx
- 2025贵州优建建筑劳务有限公司考前自测高频考点模拟试题及答案详解1套.docx
- 2025贵州银行金融科技相关岗位招聘10人考前自测高频考点模拟试题附答案详解.docx
- 2025第十三届贵州人才博览会沿河土家族自治县县管国有企业引才17人考前自测高频考点模拟试题及完整答.docx
- 2025赤峰环保投资有限公司招聘3人考前自测高频考点模拟试题及答案详解1套.docx
- 2025贵州安顺市社会科学界联合会招聘公益性岗位人员考前自测高频考点模拟试题及完整答案详解1套.docx
- 2025贵州金丽农业旅游产业发展集团有限公司招聘经理层高级管理人员(财务总监)1人考前自测高频考点模.docx
- 2025贵州黔东南州剑河县顺诚公司紧急招聘长期搔菌人员15人考前自测高频考点模拟试题及参考答案详解.docx
- 2025黑龙江东北林业大学土木与交通学院派遣人才招聘1人模拟试卷及参考答案详解.docx
文档评论(0)