用socket
實現點對點的檔案傳輸
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()
//檔案傳輸
if ( execmd == "getok" )
}
}
catch(exception se)
}
至此,基本的工作已經完成了,下面我們看看如何處理檔案傳輸的。
while(rdby < total && nfs.canwrite)
從上面的**可以看出是完成檔案轉換成filestream流,然後通過networkstream繫結對應的套節子,最後呼叫他的write方法傳送到對應的計算機。
我們再看看接受端是如何接受傳輸過來的流,並且轉換成檔案的:
networkstream nfs = new networkstream(sock) ;
try
fout.close() ;
從上面可以看出接受與傳送恰好是互為相反的過程,非常簡單。
至此,單方向的檔案傳輸就完成了,只需要在每個對等的節點上同時實現上面的傳送和接受的處理**就可以做到互相傳輸檔案了。
用Socket實現點對點的檔案傳輸
用socket實現點對點的檔案傳輸 system.sockes命名空間了實現 berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送.而在我下面要討論的這個議題裡,我們將討論的是用套節子實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙...
用Socket實現點對點的檔案傳輸
system.sockes命名空間了實現 berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送。而在我下面要討論的這個議題裡,我們將討論的是用套接字實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙個專門的伺服器和客戶端,無疑於我們要...
用Socket實現點對點的檔案傳輸
system.sockes命名空間了實現berkeley 套接字介面。通過這個類,我們可以實現網路計算機之間的訊息傳輸和傳送.而在我下面要討論的這個議題裡,我們將討論的是用套節子實現檔案的傳輸.這種方法有別於ftp協議實現的的檔案傳輸方法,利用ftp的方法需要乙個專門的伺服器和客戶端,無疑於我們要實...