- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于WinSock网络应用程序开发研究
基于WinSock网络应用程序开发研究
摘要:伴随着互联网技术的进步和信息技术的发展,网络应用程序的开发越来越普遍,应用越来越广泛。文章以基于WinSock的网络应用程序的开发研究为中心话题,重点介绍了套接字的相关知识、面向连接的套接字编程原理等内容。其中包括套接字的概念、套接字的分类、服务器端程序关键代码的实现、客户机端程序关键代码的实现等方面。希望能够引起人们对网络应用程序开发的进一步重视,对实际工作能够发挥一定的指导作用。
关键词:网络应用程序;套接字;编码;服务器端程序
中图分类号:TP311.10 文献标识码:A 文章编号:1674-7712 (2012) 16-0077-01
一、引言
近年来,计算机技术取得了突飞猛进的发展,与之相伴的网络应用软件的开发也越来越多,生产实践也需要更多的网络应用软件,以满足人们的实际需求。在这样的背景之下,各种各样的网络编程技术相继出现,并得到了运用和发展。在网络应用程序开发中,使用套接字的方式,进而实现互联网上的进程通讯,以达到网络应用的各种功能,这是目前在网络应用程序开发中的一种十分重要的方法,也具有广泛的应用。文章主要介绍基于WinSock的网络应用程序的开发问题,希望能够引起人们对这一网络应用程序开发的重视。
二、套接字的相关知识
套接字的相关知识比较多,在这里不一一介绍,重点介绍它的概念和分类。
(一)套接字的概念
网络编程,也就是人们所说的编写基于互联网的应用程序。首先,这个程序需要形成网络通讯管道,它是利用TCP/IP协议栈形成的,使得网络上的通讯得以完成。只有这些事情完成之后,才能开发网络应用程序。在网络应用开发的过程中,套接字是使得进程通信得以实现的得力工具。从使用的效果来看,套接字是进程通信断点的抽象,它能够提供交换数据机制。从实现上来说,套接字不是别的东西,而是一个软件机构,在这个机构里面,包含着一定的数据结构。而从使用上来说,套接字就是一个编程的接口,好比插座一般,使得机器的用电变得十分方便。为了能够比较方便的网络通讯功能,程序通过绑定套接字的方式进行。在位置上,套???字位于通讯域中,在同一个域中,不同的套接字之间进行数据的交换。事实上,Socket能够使用的通讯协议栈不仅一种,而是多种多样的。在网路层,IP寻找路由,实现数据在不同主机之间的交换。而在传输层,它是通过端口,从而实现端到端的传输服务。
(二)套接字的分类
在套接字的分类上,主要包括两种:流式套接字和数据报套接字,用户可以根据实际情况进行选择。第一、流式套接字具有以下特点:它与电话系统比较相类似,并且能够提供流传输服务,这种服务既是可靠的,同时也是面向连接的。要实现完整的数据传输,都有必要经过以下三个程序:建立连接、使用连接、终止连接。从本质上来看,连接是一个管道,数据连接的时候,它是从一端流入,从另外一端流出的过程,只不过是顺序不一致而已,但是内容相同,正因为这样,流式套接字在实践中的运用越来越广泛。第二、数据报套接字具有以下几个特点:它能够提供数据报传输服务,并且这种服务是无连接的,它能够支持双向的数据流。数据的传输与邮政系统有点类似,它是通过相互独立的数据报进行传输的。数据报套接字在传输的过程中,各分组在系统中是独立的,不过不能保证分组的先后顺序,对于出错的分组也不能进行恢复或者是重新传输。
三、面向连接的套接字编程原理
面向连接的套接字编程原理比较复杂,文章主要从以下两个方面进行介绍,服务器端和客户机端程序关键代码的实现。
(一)服务器端程序关键代码的实现
在程序启动的时候,对于面向连接的套接字编程。服务器和客户机都有必要通过WSAStartup(),这样才能够完成对Windows Socket DLL的加载,并且还能够对套接字的版本进行立即的检查,当对WSAStartup()的调用成功之后,在这个时候,应用程序才可以调用Windows Socket DLL中的其他函数。当上述步骤完成之后,接下来是定义服务器端的地址和端口号。完成对结构对象各成员的设置。当服务器端套接字调用完listen()函数之后,然后有必要完成accept()函数的调用。在该系统中,进行的是有连接的数据传输,所以,如果有数据到达的话,只需要调用recv()函数,从套接字将数据取出来就可以了,既能够实现通讯和所要达到的目的。
(二)客户机端程序关键代码的实现
事实上,在编程方面,与服务器端的设计相比而言,面向连接套接字的客户机端的设计要简单得多。它的操作比较简单,只要在流式套接字创建完成之后,调用connect()函数,向在其启动之前就工作的服务器套接字提出连接请求,然后成功返回,通过这样的操作就能够完成与服务器的连接工作。当连接建立之后,就可以实
文档评论(0)