计算机网络课程设计报告-基于tcp的局域网多人聊天室.pdfVIP

计算机网络课程设计报告-基于tcp的局域网多人聊天室.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络 课程设计报告 基于TCP 的局域网多人聊天室 摘 要 随着计算机网络技术的发展,各种各样基于网络的应用也随之诞生,比如基 于互联网的信息发布,通信,数据共享等等。局域网的发展也同样迅速。很多政府 机构,企业,学校,都是先以一个统一的局域网联结在一起,再分别接入 INTERNET 因此基于局域网的即时通信工具,就这样应运而生了。所以本课程设计提出了一 个基于TCP 局域网多人聊天室设计,并在Visual Studio 所提供的win32 平台上 实现了将客户端和服务端两个应用程序在局域网内相互通信的功能,并用多线程 实现不同的并行任务,且进行了人性化的界面设计,使用起来更加简单方便;功 能也十分合理,又易于扩展以及个性化定制。本系统釆用典型的CS (客户端/服务 器)的框架模式,在该方案中采用 Socket (套接字)原理实现网络通信,最终实现 了通过服务器中转的文字聊天、文件传输功能。本报告中介绍了该系统实现的基 础原理、实现方法与结果展示。 关键词:TCP; Socket; 多线程; 通信 第一章 系统实现的基础原理 1. 传输控制协议 (Transmission Control Protocol,TCP) TCP 是TCP/IP 体系中一个复杂的协议,其最主要的特点为: (1) TCP 是面向连接的运输层协议,应用程序在使用TCP 协议之前,必须 建立TCP 连接。 (2) 每条TCP 连接只能连接两个端点,每一条TCP 连接只能是点对点。 (3) TCP 提供可靠交付的服务,通过 TCP 连接传送的数据无差错、不丢 失、不重复,并且按序到达。 (4) TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能 收发数据。TCP 连接的两端都设有发送缓存和接收缓存,用来临时存放 双向通信的数据。在发送时,应用程序在把数据传送给TCP 缓存后,就 可以处理其它数据,而TCP 在合适的时候把数据发送出去。在接收时, TCP 把收到的数据放入缓存,上层的应进程在合适的时候读取缓存中的 数据。 (5) 面向字节流。TCP 中的“流”指的是流入到进程或从进程流出的字节 序列。“面向字节流”的含义是:虽然该应用程序和TCP 的交互是一次一 个数据块,但TCP 把应用该程序交下来的数据仅仅看成是一串无结构的 字节流。TCP 并不知道所传送的字节流的意义。TCP 不保证接收方应用程 序所收到的数据块和发送方应用程序所发送的数据块具有对应大小的关 系,但是接收方应用程序收到的字节流和发送方应用程序发出的字节流 完全一样。 2. TCP 的连接 每条TCP 连接有两个端点,TCP 连接的端点为套接字(Socket)或插口。根 据RFC793 的定义:端口号拼接到IP 地址即构成了套接字。因此,套接字的表示 方法是在点分十进制的 IP 地址后面写上端口号,中间用冒号或逗号隔开。每条 TCP 连接唯一地被通信两端的两个端点(即两个套接字)所确定,即: TCP 连接 ::= { socket1,socket2 } = { (IP1:port1),(IP2:port2)} 3. socket 机制 socket 是应用进程为了获得网络通信服务而与操作系统进行交互时使用的 一种机制。在网络编程时,常把socket 作为应用进程和运输层协议之间的接口, 在socket 以上的进程是受应用程序控制的,而在socket 以下的运输层协议软件 则是由计算机操作系统控制。因此,只要应用程序使用TCP/IP 协议进行通信, 就必须通过socket 与操作系统交互并请求其服务。 当应用进程(客户或服务器)需要使用网络进行通信时,必须首先发出 socket 系统调用,请求操作系统为其创建一个“socket”。这个调用实际效果是 请求操作系统把网络通信需要的一些系统资源(存储器空间、CPU 时间、网络带 宽等)分配给该应用进程。操作系统为这些资源的总合用一个叫做套接字描述符 的号码来表示,然后把这个套接字描述符返回给应用进程。此后,应用进程所进 行的网络操作(建立连接、收发数据、调整网络通信参数等)都必须使用这个套 接字描述符。因此,几乎所有的网

文档评论(0)

浙江工程信息通 + 关注
实名认证
服务提供商

网络工程师持证人

本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。

领域认证该用户于2023年05月11日上传了网络工程师

1亿VIP精品文档

相关文档