用Socket實現點對點的檔案傳輸

2021-05-25 01:29:06 字數 1020 閱讀 9382

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 ) }   下面的**展示了listenclient方法是如何處理另外一台計算機傳送過來的請求。首先並對傳送過來的請求字串作出判定,看看是何種請求,然後決定相應的處理方法。 void listenclient()

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

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

networkstream nfs = new networkstream(sock) ;

try

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

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

用Socket實現點對點的檔案傳輸

用socket實現點對點的檔案傳輸 system.sockes命名空間了實現 berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送.而在我下面要討論的這個議題裡,我們將討論的是用套節子實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙...

用Socket實現點對點的檔案傳輸

用socket 實現點對點的檔案傳輸 system.sockes命名空間了實現berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送.而在我下面要討論的這個議題裡,我們將討論的是用套節子實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙...

用Socket實現點對點的檔案傳輸

system.sockes命名空間了實現berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送.而在我下面要討論的這個議題裡,我們將討論的是用套節子實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙個專門的伺服器和客戶端,無疑於我們要實...