亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用Socket實現點對點的文件傳輸

2019-11-17 05:06:56
字體:
來源:轉載
供稿:網友
  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()
{
Socket sock = clientsock ;
try
{
while ( sock != null )
{
byte[] recs = new byte[32767];
int rcount = sock.Receive(recs,recs.Length,0) ;
string message = System.Text.Encoding.ASCII.GetString(recs) ;
//對message作出處理,解析處請求字符和參數存儲在cmdList 中
execmd=cmdList[0];
sender = null ;
sender = new Byte[32767];

string parm1 = "";
//目錄列舉
if ( execmd == "LISTING" )
{
ListFiles(message);
continue ;
}
//文件傳輸
if ( execmd == "GETOK" )
{
cmd = "BEGINSEND " + filepath + " " + filesize ;
sender = new Byte[1024];
sender = Encoding.ASCII.GetBytes(cmd);
sock.Send(sender, sender.Length , 0 );
//轉到文件下載處理
DownloadingFile(sock);
continue ;
}
}
}
catch(Exception Se)
{
string s = Se.Message;
Console.WriteLine(s);
}
}

至此,基本的工作已經完成了,下面我們看看如何處理文件傳輸的。
while(rdby < total && nfs.CanWrite)
{
//從要傳輸的文件讀取指定長度的數據
len =fin.Read(buffed,0,buffed.Length) ;
//將讀取的數據發送到對應的計算機
nfs.Write(buffed, 0,len);
//增加已經發送的長度
rdby=rdby+len ;
}  從上面的代碼可以看出是完成文件轉換成FileStream 流,然后通過NetworkStream綁定對應的套節子,最后調用他的write方法發送到對應的計算機。

  我們再看看接受端是如何接受傳輸過來的流,并且轉換成文件的:
NetworkStream nfs = new NetworkStream(sock) ;
try
{
//一直循環直到指定的文件長度
while(rby < size)
{
byte[] buffer = new byte[1024] ;
//讀取發送過來的文件流
int i = nfs.Read(buffer,0,buffer.Length) ;
fout.Write(buffer,0,(int)i) ;
rby=rby+i ;
}
fout.Close() ;  從上面可以看出接受與發送恰好是互為相反的過程,非常簡單。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲成视频免费观看| 国内精久久久久久久久久人| 欧美黑人一级爽快片淫片高清| 亚洲国产三级网| 性欧美办公室18xxxxhd| www.xxxx精品| 黑人精品xxx一区一二区| 久久国产精品99国产精| 久久久精品亚洲| 精品综合久久久久久97| 国产91精品高潮白浆喷水| 久久国产精品久久久| 欧美激情国内偷拍| 日韩亚洲一区二区| 日韩在线观看免费网站| 亚洲性生活视频| 亚洲一区二区国产| 国产精品丝袜高跟| 国产一区二区丝袜高跟鞋图片| 久久久久久久一区二区| 欧美在线视频网站| 日本成人黄色片| 欧美日韩aaaa| 成人免费观看49www在线观看| 亚洲自拍小视频| 亚洲日本中文字幕免费在线不卡| 欧美日韩国产成人高清视频| 91av中文字幕| 日韩精品在线看| 国产精品久久久久福利| 一本色道久久88亚洲综合88| 亚洲精品wwww| 97超级碰在线看视频免费在线看| www欧美xxxx| 欧美国产日韩一区二区三区| 国产免费一区视频观看免费| 亚洲第一天堂无码专区| 欧美日韩激情小视频| 欧美丝袜一区二区三区| 欧美另类极品videosbestfree| 日韩在线视频线视频免费网站| 亚洲成人性视频| 成人精品视频久久久久| 欧美野外wwwxxx| 55夜色66夜色国产精品视频| 日韩在线中文视频| 中文字幕9999| 久久成人这里只有精品| 久久久久久久久久婷婷| 一区二区三区视频免费在线观看| 九九久久久久99精品| 亚洲激情在线观看视频免费| 午夜精品视频在线| 欧美专区福利在线| 日韩成人在线视频观看| 日韩av网站在线| 高清一区二区三区四区五区| 日韩在线观看网址| 亚洲精品电影在线观看| 亚洲精品国产suv| 国产精品69久久| 91精品久久久久久久久久入口| 日韩av免费在线观看| 日韩综合视频在线观看| 欧美日韩激情小视频| 亚洲人成电影在线| 亚洲综合国产精品| 精品国产依人香蕉在线精品| 一区二区三区久久精品| 成人性生交大片免费观看嘿嘿视频| 亚洲自拍中文字幕| 亚洲综合自拍一区| 日韩中文字幕免费| 91中文精品字幕在线视频| 日韩欧美中文在线| 日韩美女视频免费在线观看| 日韩在线视频播放| 国产免费一区二区三区在线能观看| 欧美在线视频观看免费网站| 亚洲人成亚洲人成在线观看| 亚洲精品影视在线观看| 精品国产乱码久久久久久虫虫漫画| 亚洲欧美日韩天堂| 日韩av在线免费播放| 国产欧美欧洲在线观看| 国产999精品视频| 国内精品久久久久影院 日本资源| 欧美黑人xxx| 91精品国产91久久久久久最新| 日韩av网址在线观看| 日韩一二三在线视频播| 久久免费视频观看| 亚洲最新av在线| 国产亚洲一区二区精品| 亚洲精品电影网| 国产成人高潮免费观看精品| 亚洲最新av在线| 久久久天堂国产精品女人| 久久久久中文字幕| 国产精品av在线播放| 国产精品爽爽爽爽爽爽在线观看| 欧美成人黑人xx视频免费观看| 国产成人高潮免费观看精品| 怡红院精品视频| 国产精品都在这里| 国产精品热视频| 国产色婷婷国产综合在线理论片a| 在线视频中文亚洲| 久久精品国产69国产精品亚洲| 中国人与牲禽动交精品| xxxx欧美18另类的高清| 亚洲激情视频在线观看| 97超碰国产精品女人人人爽| 欧美亚州一区二区三区| 亚洲欧美一区二区激情| 国产成人avxxxxx在线看| 亚洲成人在线视频播放| 亚洲成人网av| 视频在线观看99| 日本电影亚洲天堂| 国内外成人免费激情在线视频网站| 欧美激情第99页| 日韩高清电影免费观看完整| 日韩中文字在线| 国产一区二区三区在线免费观看| 日本韩国欧美精品大片卡二| 欧美精品一区二区三区国产精品| 狠狠爱在线视频一区| 国产91精品高潮白浆喷水| 亚洲天堂男人的天堂| 欧美肥婆姓交大片| 日韩av在线一区| 精品成人国产在线观看男人呻吟| 亚洲第一精品夜夜躁人人爽| 国产精品一区二区久久| 久久精品久久久久电影| 日韩美女免费观看| 亚洲第一精品电影| 久久人人爽人人爽人人片av高请| 91性高湖久久久久久久久_久久99| 国产亚洲一级高清| 亚洲男人天堂手机在线| 亚洲最大福利视频网站| 97国产suv精品一区二区62| 黑人与娇小精品av专区| 精品自拍视频在线观看| 欧美日韩国产中文精品字幕自在自线| 日韩一区二区av| 久久伊人精品天天| 亚洲第一精品久久忘忧草社区| 日韩在线视频播放| 国产精品色午夜在线观看| 国产精品视频免费在线| 中日韩美女免费视频网址在线观看| 96pao国产成视频永久免费| 92裸体在线视频网站| 欧美国产日产韩国视频| 国产日韩综合一区二区性色av| 日本乱人伦a精品| 日韩在线中文字幕| 中文字幕少妇一区二区三区| 国产欧美一区二区三区久久| 91久久精品久久国产性色也91| 日韩电影在线观看永久视频免费网站|