- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MFC和WINSOCK的网络通信软件设计
基于MFC和WINSOCK的网络通信软件设计
摘要:本文主要介绍三个方面的内容:
介绍计算机网络与网络通信的概念,然后阐述了基于客户机/服务器模式网络通信程序实现的关键技术Windows Socket,最后对通信程序进行设计和分析,给出了逻辑和流程图及部分关键程序。
程序整体设计过程,主要介绍如何采用面向对象的方法进行分析和设计,以及在设计和实现过程中所采用的模式(Pattern)
设计的优势和不足之处
关键字:计算机网络;客户机/服务器模式;Windows Socket;设计模式、MFC;TreeView.
一 MFCWinSock编程
1.1网络通信如何进行
网络通信程序,无论是在Internet还是局域网中,都采用同样的原则,通过类似的功能来实现网络通信。首先一台计算机中的某个程序对待另一个程序的链接请求,这个应用程序在“监听”这种连接请求,同时另一个应用程序试图于第一个程序连接,应用程序要建立连接必须知道对方的网络地址。建立连接后彼此就可以传送信息了。当完成信息交换后必须关闭连接,不管那一方关闭连接,另一方可以检测到这个情况,并关闭该方的通信。
1.2网络应用程序的结构
网络应用程序包括两个部分:一部分势服务器端的应用程序,主要用于接受客户端的连接请求、接收客户端的信息、处理客户端的计算请求、向客户端发送计算结果和应答信息等。另一部分是客户端的应用程序,主要是用于请求连接到服务器、向服务器发送计算请求、处理服务器发回的计算结果和其他信息等。一个在建立分布式应用时最常用的范例便是客户机/服务器模型。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务-对客户的请求作出适当的反应。这一请求/相应的过程可以简单的用图2-1表示。虽然基于连接的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过数据报套接口提供的。
1.3 TCP/IP体系结构
在Internet所使用的各种协议中,最重要的和最著名的就是两个协议,即传输控制协议TCP和网际协议IP。人们常提到的TCP/IP并不一定是指TCP和IP这两个具体的协议,而是表示Internet所使用的体系结构或是整个TCP/IP协议族。在TCP/IP体系中共有四个层次,没有对物理层和数据链路层做出规定,而只是将最底层取名为网络接口层。若再不考虑没多少内容的网络接口层,那么TCP/IP体系实际上只有三个层次:应用层,运输层和网际层。TCP/IP的最高层是应用层。在这层中包括了远程登陆协议TELNET,文件传送协议FTP,另一种是无连接的用户数据报协议UDP。TCP/IP网际层的主要协议就是无连接的网际协议IP。与网际协议IP配合使用的还有三个协议:Internet控制报文协议ICMP、地址解析协议ARP和逆地址解析协议ARP。
应用层
(各种应用层协议如:TELNET,
FTP,SMTP等) 传输层TCP,UDP 网际层IP 网络接口层
(图2 tcp/ip模型)
1.4套接字和端口
套接字(sochet)是一种网络编程接口,它是对网络通信的一种抽象,提供了一种发送和接收数据的机制。通常一台服务器可以运行多个服务程序,每个服务器程序为用户提供一种特定的服务,要在同一台机器上实现不同服务就要使用套接字。每个服务程序使用一个特定的套接字端口进行监听客户机的连接请求。客户机只有连接到制定的端口才能得到相应的服务。正如一个房间里可能有多个接口可以提供电话、有线电视、上网等服务,要收看有线电视就要把把信号线连接到有线电视接口,连接到其他接口就得不到期望的服务。
同一台计算机中特定的端口只能有一个应用程序在监听,因此不同的网络应用必须制定不同的监听端口。在网络应用程序中可以使用数据报套接字(Datagram Socket)和流式套接字(StreemSocket),数据报套接字使用UDP协议而流式套接字使用TCP协议,可以使用同一个端口号进行监听,分别称为TCP端口和UTP端口。
端口1-255:留给特定服务 如:FTP 、TELNET(0,不使用)
端口256—1023:留给一般服务
端口1024-4999:可以被客户机端口使用
端口5000-65535提供用户定义的服务器端口使用。
1.5 Winsock 和MFC
由于套接字广泛应用于网络编程,因此需要一个公众可以接收的规范。Windows Sockets规范以U.C. Berkeley大学BSD UNIX中流行的Socket接口为范例定义了一套Micosoft Windows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows
文档评论(0)