1 UNIX TCP/IP 网络文件传输的实现摘要: 该文着重探讨如何利用 UNIX TCP/IP 所提供的套接字接口和网络库例程来编制用户应用程序, 并在此基础叟实现了网络文件传输。一、引言随着计算机应用的不断深入和信息交流的不断增加,许多 UNI X 系统用户越来越感到, 仅由一台高性能微机运行 UNIX, 带多台至几十台终端已不能满足应用的需要, 因此, 越来越多的系统正在向多用户网络方向发展。 UNIX TCP/IP 网络就是解决上述矛盾的一种系统。它将多台运行 UNIX 系统的超级微机用电缆线连接起来,采用 TCP/IP 协议进行通信, 任一微机所连接的终端可登录到网上其它任一主机上进行操作, 也可以通过网络提供的功能, 进行其它网络操作。 SCO UNIX TCP/IP 网络系统为用户提供了许多通信功能,它包括远程登录、文件传输、邮件发送以及其它有关网络应用、管理及控制方面的命令。这些功能均在命令级实现, 即用户只需在命令提示符下键入相应的命令, 即可完成相应的操作。但是, 有许多应用系统对网络功能的调用是在应用程序运行过程中的, 仅通过命令接口是不能完全满足应用的需要的, 因此, 2 用户必须通过网络提供的接口编制自己的网络应用程序。 SCO UNIX TCP/IP 为用户提供了一组套接字接口, 本文将介绍如何通过调用套接字以及 TCP/IP 提供的库函数编制一个文件传输应用程序。二、套接字接口及调用 1. 套接字接口一个用户应用系统, 即一个客户进程, 通常需要与一个完成其功能有的服务进程进行通信。在 UNIX 系统中完成这种进程间通信的一个方法是通过管道(PIPES) 来实现的,UNI X 网络运行系统也提供一个更灵活的强有力的独立子系统以支持一个分布式环境的进程间通信, 这个子系统就称作套接字(SOCKET) 接口。套接字接口构成了在单个主机内及整个网际间的编程界面和进程间通信的基础。一个套接字是一个软件实体, 它为进程间通信提供了基本的构件, 它是进程间通信的端点, 对互连网地址来说, 下面的一对全名套接字唯一确定了通信双方的连接: 其中,nod e是4 字节地址,por t为2 字节长, 左边的是本地套接字, 右边是远程或外部套接字。套接字具有类型, 其类型是由面向程序员的通信特性决定的, 它与套接字支持的特殊协议有关。时程通常是在相同类型的 3 套接字之间通信。目前程序员可使用下面三种类型的套接字。· 流套接字: 提供双向的、可靠的、有序的且不重复的无记录边界的数据流, 它是最常用的一种类型。· 数据报套接字: 它支持双向数据流, 但记录边界被保持, 接收进程必须重新定序, 消除重复并提供可靠保证, 它适用于单个报文的可靠性不重要的场合。· 原始套接字: 使用原始套接字, 程序员能访问低层通信协议(如 IP), 它不是为一般用户设置的, 而是为了开发新的通信协议, 或是为了访问现有协议中较隐蔽功能而设置的。 2. 套接字的调用 TCP/I P 的系统调用主要是通过对套接字的操作来实现的,下面给出了部分常用的 TCP/IP 系统调用: · scoket 创建套接字· bind 为套接字赋一个名字· connect 启动一个连接· accept 接受连接· listen 监听连接· writ
UNIX TCP-IP网络文件传输的实现 来自淘豆网m.daumloan.com转载请标明出处.