基于WinSock的网络应用程序的开发研究

来源 :消费电子 | 被引量 : 0次 | 上传用户:cw545400
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:伴随着互联网技术的进步和信息技术的发展,网络应用程序的开发越来越普遍,应用越来越广泛。文章以基于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()函数,向在其启动之前就工作的服务器套接字提出连接请求,然后成功返回,通过这样的操作就能够完成与服务器的连接工作。当连接建立之后,就可以实现与服务器数据的传输,这个传输是通过recv()函数和send()函数实现的。值得注意的是,客户机在调用connect()函数的时候,有必要通过参数指出相关的信息,比如服务器的IP地址,端口号等等。
  四、结束语
  通过上述的介绍我们可以得知,在网络应用程序的开发中,使用Socket能够收到良好的效果,能够屏蔽网络低层复杂的结构和协议。这样一来,使用Socket开发的软件适用性比较强,能够在各种网上运行,从而不必要担心是什么类型的网络或者是服务器。并且,该应用软件可以比较容易的实现异构网的互连,操作也简单方便。除此之外,使用Socket开发的网络应用软件还有一个显著的特点,那就是程序的结构十分清楚明了,升级和维护也十分方便,在实践中值得进一步推广和应用。
  参考文献:
  [1]赵志诚,徐玉斌,高慧敏,曾建潮.基于C/S模式的Winsock网络通信程序的开发[J].计算机工程,2000(4).
  [2]李镭,喻金科,肖永生.基于Delphi下Winsock的应用程序开发与研究[J].南昌航空工业学院学报(自然科学版),2006(3).
  [3]樊佩佩,王平岗.基于VB的Winsock控件远程通信的实现[J].邢台职业技术学院学报,2011(5).
  [4]蒋东兴,林鄂华,陈祺德.WindowsSockets网络程序没计大全[M].北京:清华大学出版社,1999.
  [5]赵晓辉,危建国.基于WinSock的网络应用程序的开发[J].西南民族大学学报(自然科学版),2007(1).
其他文献
几年馆政,使我对今天的高校图书馆有了进一步认识。种种原因,高校馆不能令人满意的地方还很多,许多理论上和实践上的问题,需要研究解决。譬如经费问题、职工队伍建设问题、管理体
货币银行学课程是财经类本科院校中经济类和管理类等多个专业的一门主干课程,在多个专业的课程体系中居于重要地位。本文提出该课程的建设应该着重从以下方面开展:树立先进的教
电力能源是我国重要的能源之一,电力资源也是目前人们生活中不可缺少的资源之一。为了能够更好的进行电力资源的管理,建立电力系统,并实现自动化的管理技术,从而加强电力资源的使
医院档案管理工作繁杂,包括实时记载病患信息,工作人员基本信息,操作处置信息等等。还要将信息及时整理存档。工作量大,保存难度高。档案管理能够体现医院的工作流程是否在正常运