网站大量收购独家精品文档,联系QQ:2885784924

UNIX TCP-IP网络文件传输的实现的论文.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX TCP-IP网络文件传输的实现的论文.doc

  UNIX TCP/IP网络文件传输的实现的论文 摘要:该文着重探讨如何利用unix tcp/ip所提供的套接字接口和网络库例程来编制用户应用程序,并在此基础叟实现了网络文件传输。 一、引言 随着计算机应用的不断深入和信息交流的不断增加,许多unix系统用户越来越感到,仅由一台高性能微机运行unix,带多台至几十台终端已不能满足应用的需要,因此,越来越多的系统正在向多用户网络方向发展。 unix tcp/ip网络就是解决上述矛盾的一种系统。它将多台运行unix系统的超级微机用电缆线连接起来,采用tcp/ip协议进行通信,任一微机所连接的终端可登录到网上其它任一主机上进行操作,也可以通过网络提供的功能,进行其它网络操作。 sco unix tcp/ip网络系统为用户提供了许多通信功能,它包括远程登录、文件传输、邮件发送以及其它有关网络应用、管理及控制方面的命令。这些功能均在命令级实现,即用户只需在命令提示符下键入相应的命令,即可完成相应的操作。但是,有许多应用系统对网络功能的调用是在应用程序运行过程中的,仅通过命令接口是不能完全满足应用的需要的,因此,用户必须通过网络提供的接口编制自己的网络应用程序。sco unix tcp/ip为用户提供了一组套接字接口,本文将介绍如何通过调用套接字以及tcp/ip提供的库函数编制一个文 件传输应用程序。 二、套接字接口及调用 1.套接字接口 一个用户应用系统,即一个客户进程,通常需要与一个完成其功能有的服务进程进行通信。在unix系统中完成这种进程间通信的一个方法是通过管道(pipes)来实现的,unix网络运行系统也提供一个更灵活的强有力的独立子系统以支持一个分布式环境的进程间通信,这个子系统就称作套接字(socket)接口。.套接字接口构成了在单个主机内及整个网际间的编程界面和进程间通信的基础。 一个套接字是一个软件实体,它为进程间通信提供了基本的构件,它是进程间通信的端点,对互连网地址来说,下面的一对全名套接字唯一确定了通信双方的连接: lt;lt;node.portgt;lt;node.portgt;gt; 其中,node是4字节地址,port为2字节长,左边的是本地套接字,右边是远程或外部套接字。 套接字具有类型,其类型是由面向程序员的通信特性决定的,它与套接字支持的特殊协议有关。时程通常是在相同类型的套接字之间通信。目前程序员可使用下面三种类型的套接字。 ·流套接字:提供双向的、可靠的、有序的且不重复的无记录边界的数据流,它是最常用的一种类型。 ·数据报套接字:它支持双向数据流,但记录边界被保持,接收进程必须重新定序,消除重复并提供可靠保证,它适用于单个报文的可靠性不重要的场合。 ·原始套接字:使用原始套接字,程序员能访问低层通信协议(如ip),它不是为一般用户设置的,而是为了开发新的通信协议,或是为了访问现有协议中较隐蔽功能而设置的。 2.套接字的调用 tcp/ip的系统调用主要是通过对套接字的操作来实现的,下面给出了部分常用的tcp/ip系统调用: ·scoket 创建套接字 ·bind 为套接字赋一个名字 ·connect 启动一个连接 ·accept 接受连接 ·listen 监听连接 ·ne,gethostbyaddr,gethostent均可完成主机名字与地址映射,它们分别将主机名或节点地址映射成一个hostent结构: struct hostent{ char * h_name;/* 正式主机名 */ char * * h_aliasea;/* 别名表 */ int h_addrtype;/* 主机的地址类型 */ int h_length;/* 地址长度*/ char * * h_addr_list; /* 地址表 */ #define h_addr h_addr_list[0] } 2.映射网络名字 getbyname, getbynumber,getent是分别用于映射网络名字的例程,使用这些例程,可将网络名映射到网络号,或把网络号映射到网络名,并返回一个ent结构: struct ent{ char * n_name;/* 正式的网络名 */ char * * n_aliasea;/* 别名表 */ int n_addrtype;/* 网络地址类型 */ unsignedlong n_;/* 网络号 */ } 3.映射服务名字 通过指定一个服务名和一个可选的合法协议,例程getservbyname,getservbyport,get servent映射服务名字到一个servent结构: struct servent{ char * s_name;/* 正式的服务名 */ char * * s_aliasea;/* 别名表 */ int s_port;/*

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档