網路程式設計 Sockes

2021-04-25 18:46:44 字數 1312 閱讀 9074

system.sockes命名空間了實現 berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送。而在我下面要討論的這個議題裡,我們將討論的是用套接字實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙個專門的伺服器和客戶端,無疑於我們要實現的點對點的檔案傳輸太為複雜了一些。在這裡,我們實現乙個輕量級的方法來實現點對點的檔案傳輸,這樣就達到了intenet上任何兩個計算機的檔案共享。

在兩台計算機傳輸檔案之前,必需得先有一台計算機建立套接字連線並繫結乙個固定得埠,並在這個埠偵聽另外一台計算機的連線請求。

socket = new socket(addressfamily.internetwork,sockettype.stream, protocoltype.tcp);

socket.blocking = true ;

ipendpoint computernode1 = new ipendpoint(serveripadress, 8080);

socket.bind(computernode1);

socket.listen(-1);

當有其他的計算機發出連線請求的時候,被請求的計算機將對每乙個連線請求分配乙個執行緒,用於處理檔案傳輸和其他服務。

while ( true )

clientsock = socket.accept();

if ( clientsock.connected )

thread tc = new thread(new threadstart(listenclient));

tc.start();

下面的**展示了listenclient方法是如何處理另外一台計算機傳送過來的請求。首先並對傳送過來的請求字串作出判斷,看看是何種請求,然後決定相應的處理方法。

void listenclient()

}至此,基本的工作已經完成了,下面我們看看如何處理檔案傳輸的。

while(rdby < total && nfs.canwrite)

從上面的**可以看出是完成檔案轉換成filestream 流,然後通過networkstream繫結對應的套節子,最後呼叫他的write方法傳送到對應的計算機。

我們再看看接受端是如何接受傳輸過來的流,並且轉換成檔案的:

networkstream nfs = new networkstream(sock) ;

try

fout.close() ;

從上面可以看出接受與傳送恰好是互為相反的過程,非常簡單。

至此,單方向的檔案傳輸就完成了,只需要在每個對等的節點上同時實現上面的傳送和接受的處理**就可以做到互相傳輸檔案了。

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...

網路程式設計 網路基礎

1.物理層 提供建立 維護和拆除物理鏈路所需的機械 電氣 功能和規程的特性 提供有關在傳輸介質上傳輸非結構的位流及物理鏈路故障檢測指示。在這一層,資料還沒有被組織,僅作為原始的位流或電氣電壓處理,單位是位元。常用協議 eia tia rs 232 eia tia rs 449 v.35 rj 45 ...

網路程式設計 網路概述

應用層 常見的協議有http協議 ftp協議 傳輸層 常見協議有tcp udp協議。網路層 常見的協議有ip協議 icmp協議 igmp協議 鏈路層 常見的協議有arp協議 rarp協議。tcp 傳輸控制協議 是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議。http 超文字傳輸協議 是網際網...