Socket在数字图书馆中应用.docVIP

  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文档。上传文档
查看更多
Socket在数字图书馆中应用

Socket在数字图书馆中应用   关键词:Socket;数字图书馆;代理服务器   摘 要:数字图书馆的实现以网络编程为基础,Socket是TCP/IP协议的接口,服务器和客户端利用Socket建立了多个数据传输通道,提出了TCP/IP协议下Socket并发通信的过程和方法,从而实现数据的并发传输。中图分类号:G250.76文献标识码:A 文章编号:1003-1588(2009)04-0079-03      1 Socket的概念      TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。 TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族,TCP/IP为网络的应用服务互联和共享提供了有效的手段,Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。应用程序通常通过“套接字”向网络发出请求或者应答网络请求,Internet网络的编程必须使用Socket接口。是通信的基石,是支持TCP/IP网络通讯协议的基本操作单元,所谓Socket通常也称作“套接字”,可以将套接字看作不同主机间进程进行双向通信的端点,它构成了整个网络的编程界面(如图1)。      从用户的角度来看套接字是通信端点的抽象概念,它为用户提供了发送和接受数据的机制,Socket用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。其中应用程序告诉Socket执行什么任务,Socket将这些命令翻译成TCP/IP协议的通信语言,再通过和TCP/IP进行交流,最后由TCP/IP协议将其传送到网络进行网络通信。      2 数字图书馆通信原理      作为网络上公认的通信标准,TCP/IP协议成为网络编程实现网络通信的重要组成部分。首先在服务器与客户端之间定义TCP通信协议,并创建Socket套接字,利用该套接字建议一套可靠的、基于面向连接的通信接口,客户端和服务器在该连接上传输数据,客户端发送请求,服务器监听来自客户的请求,并作出响应服务。   Socket接口是TCP/IP网络的API,Socket接口定义了许多的函数和例程。目前,网络上绝大多数的通信采用的都是服务器/客户端(Server/Client)机制,一般情况下,在服务器端,当有一个客户端连接请求到来时,服务器与客户端建立连接,然后服务器端一个进程专门处理与客户端的通信,子进程为客户提供服务,主进程继续监听其他的客户进程。服务器掌握每个客户的Socket,并能够分辨来自不同客户机的数据,它根据Socket分别对不同的客户机做出不同的响应。从而对多个客户端并发进行通信。服务器/客户端利用Socket数据传输流程(如图2)。         3 数字图书馆通信原理      3.1 数字图书馆实现函数   3.1.1 Socket()函数   Int socket(int domain, int type, int protocol)。Socket()用来建立一个Socket数据结构分配存储空间,通知系统建立一通信端口。参数domain指定使用何种的地址类型,目前仅支持PF_INET(TCP/IP协议族)格式。   3.1.2 Bind()函数   Int bind(int sockfd, struct sockaddr my_addr, int addrlen)。Bind()用来设置给参数sockfd的socket一个名称。此名称由参数my_addr指向包含有本机IP地址和端口号等信息的指针,当创建了一个Socket以后,套接字数据结构中有一个默认的IP地址和默认的端口号。一个服务程序必须调用bind函数将Socket与本机IP地址和一个特定端口相关联,随后可以在该端口监听服务请求。   3.1.3 Listen()函数   Int listen(int s, int backlog)。Listen()用来等待参数s的socket连线。参数backlog指定服务器端同时能处理的最大客户端连接要求,如果连接数目达此上限则,client端将收到ECONNREFUSED的错误。Listen()并未开始接收连线,只是设置socket为listen模式,真正接收客户端连线的是accept()。   3.1.4 Recv()/ Send()函数   Int recv( SOCKET s,char FAR buf,int len,int flags)。Int s

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档