- 相關(guān)推薦
UNIX TCP/IP網(wǎng)絡(luò)文件傳輸?shù)膶崿F(xiàn)
摘要:該文著重探討如何利用UNIX TCP/IP所提供的套接字接口和網(wǎng)絡(luò)庫例程來編制用戶應(yīng)用程序,并在此基礎(chǔ)叟實現(xiàn)了網(wǎng)絡(luò)文件傳輸。
一、引言
隨著計算機應(yīng)用的不斷深入和信息交流的不斷增加,許多UNIX系統(tǒng)用戶越來越感到,僅由一臺高性能微機運行UNIX,帶多臺至幾十臺終端已不能滿足應(yīng)用的需要,因此,越來越多的系統(tǒng)正在向多用戶網(wǎng)絡(luò)方向發(fā)展。
UNIX TCP/IP網(wǎng)絡(luò)就是解決上述矛盾的一種系統(tǒng)。它將多臺運行UNIX系統(tǒng)的超級微機用電纜線連接起來,采用TCP/IP協(xié)議進行通信,任一微機所連接的終端可登錄到網(wǎng)上其它任一主機上進行操作,也可以通過網(wǎng)絡(luò)提供的功能,進行其它網(wǎng)絡(luò)操作。
SCO UNIX TCP/IP網(wǎng)絡(luò)系統(tǒng)為用戶提供了許多通信功能,它包括遠程登錄、文件傳輸、郵件發(fā)送以及其它有關(guān)網(wǎng)絡(luò)應(yīng)用、管理及控制方面的命令。這些功能均在命令級實現(xiàn),即用戶只需在命令提示符下鍵入相應(yīng)的命令,即可完成相應(yīng)的操作。但是,有許多應(yīng)用系統(tǒng)對網(wǎng)絡(luò)功能的調(diào)用是在應(yīng)用程序運行過程中的,僅通過命令接口是不能完全滿足應(yīng)用的需要的,因此,用戶必須通過網(wǎng)絡(luò)提供的接口編制自己的網(wǎng)絡(luò)應(yīng)用程序。SCO UNIX TCP/IP為用戶提供了一組套接字接口,本文將介紹如何通過調(diào)用套接字以及TCP/IP提供的庫函數(shù)編制一個文
件傳輸應(yīng)用程序。
二、套接字接口及調(diào)用
1.套接字接口
一個用戶應(yīng)用系統(tǒng),即一個客戶進程,通常需要與一個完成其功能有的服務(wù)進程進行通信。在UNIX系統(tǒng)中完成這種進程間通信的一個方法是通過管道(PIPES)來實現(xiàn)的,UNIX網(wǎng)絡(luò)運行系統(tǒng)也提供一個更靈活的強有力的獨立子系統(tǒng)以支持一個分布式環(huán)境的進程間通信,這個子系統(tǒng)就稱作套接字(SOCKET)接口。套接字接口構(gòu)成了在單個主機內(nèi)及整個網(wǎng)際間的編程界面和進程間通信的基礎(chǔ)。
一個套接字是一個軟件實體,它為進程間通信提供了基本的構(gòu)件,它是進程間通信的端點,對互連網(wǎng)地址來說,下面的一對全名套接字唯一確定了通信雙方的連接:
<<node.port><node.port>>
其中,node是4字節(jié)地址,port為2字節(jié)長,左邊的是本地套接字,右邊是遠程或外部套接字。
套接字具有類型,其類型是由面向程序員的通信特性決定的,它與套接字支持的特殊協(xié)議有關(guān)。時程通常是在相同類型的套接字之間通信。目前程序員可使用下面三種類型的套接字。
·流套接字:提供雙向的、可靠的、有序的且不重復(fù)的無記錄邊界的數(shù)據(jù)流,它是最常用的一種類型。
·數(shù)據(jù)報套接字:它支持雙向數(shù)據(jù)流,但記錄邊界被保持,接收進程必須重新定序,消除重復(fù)并提供可靠保證,它適用于單個報文的可靠性不重要的場合。
·原始套接字:使用原始套接字,程序員能訪問低層通信協(xié)議(如IP),它不是為一般用戶設(shè)置的,而是為了開發(fā)新的通信協(xié)議,或是為了訪問現(xiàn)有協(xié)議中較隱蔽功能而設(shè)置的。
2.套接字的調(diào)用
TCP/IP的系統(tǒng)調(diào)用主要是通過對套接字的操作來實現(xiàn)的,下面給出了部分常用的TCP/IP系統(tǒng)調(diào)用:
·scoket 創(chuàng)建套接字
·bind 為套接字賦一個名字
·connect 啟動一個連接
·accept 接受連接
·listen 監(jiān)聽連接
·write/send 發(fā)送信息
·read/recv 接收信息
·close 關(guān)閉套接字
三、UNIX網(wǎng)絡(luò)庫例程的應(yīng)用
網(wǎng)絡(luò)庫例程的主要用途是確定和建立網(wǎng)絡(luò)地址。
在客戶方與服務(wù)方進行通信前,在遠程節(jié)點上確定一個服務(wù)需要進行多級映射。為便于使用,每個服務(wù)被指定一個名字,這個名字必須被翻譯成網(wǎng)絡(luò)地址,最后,該地址被用來確定一個物理位置和到服
[1] [2]
【UNIX TCP/IP網(wǎng)絡(luò)文件傳輸?shù)膶崿F(xiàn)】相關(guān)文章:
TCP/IP協(xié)議04-29
IP網(wǎng)絡(luò)存儲·什么是IP SAN支持04-26
IP網(wǎng)絡(luò)存儲·什么是網(wǎng)絡(luò)接口04-26
基于TCP構(gòu)架的可信JVM遠程驗證系統(tǒng)研究與實現(xiàn)04-27
IP網(wǎng)絡(luò)存儲·什么是硬件參數(shù)04-26
IP網(wǎng)絡(luò)存儲·什么是NAS支持04-26
多業(yè)務(wù)IP城域網(wǎng)的技術(shù)選擇與實現(xiàn)04-30