自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用socket完成VB.NET文件傳輸案例剖析

開發(fā) 后端
文章主要介紹了VB.NET文件傳輸,利用socket來實現(xiàn)文件的網(wǎng)絡傳輸和接收功能,詳細的代碼讓你體會利用socket來完成文件傳輸?shù)暮锰帯?/div>

提到文件傳輸不知道的人會問怎么傳輸???可是這個問題對于我們程序員來說就不是一個很陌生的話題,大家都知道socket.socket是網(wǎng)絡套接字,使用它我們可以很方便的實現(xiàn)網(wǎng)絡的數(shù)據(jù)傳輸。在.net中提供了socket類來幫助開發(fā)者調用socket的使用,從而避免了調用socket的動態(tài)庫來實現(xiàn)socket的麻煩。下面我們就來看一個簡單的例子,從這個簡單的例子來看看.net中的socket類實現(xiàn)socket是多么的方便。

VB.NET文件傳輸編程思路:在這個簡單的例子中我們將通過socket來實現(xiàn)文件的網(wǎng)絡傳輸和接收功能。要實現(xiàn)這兩個功能我們需要通過vs.net建立兩個實例來完成。一個發(fā)送端,一個接收端。由于文中已經(jīng)給出了詳細的注釋這里就不羅嗦了。

VB.NET文件傳輸代碼:

  1. 發(fā)送端PublicClassForm1  
  2. InheritsSystem.Windows.Forms.Form  
  3. PrivateSubButton1_Click(ByValsenderAsSystem.Object,  
  4. ByValeAsSystem.EventArgs)HandlesButton1.Click  
  5. DimsendsocketAsNewNet.Sockets.Socket  
  6. (Net.Sockets.AddressFamily.InterNetwork,  
  7. Net.Sockets.SocketType.Stream,Net.Sockets.ProtocolType.Tcp)  
  8. ''實例化socket  
  9. DimipendpiontAsNewNet.IPEndPoint  
  10. (Net.IPAddress.Parse("192.168.0.1"),8888)''建立終結點  
  11. ''OpenFileDialog1.ShowDialog()  
  12. DimfsAsNewIO.FileStream("c:p.doc",  
  13. IO.FileMode.OpenOrCreate,IO.FileAccess.Read)''要傳輸?shù)奈募? 
  14. Dimfssize(fs.Length-1)AsByte  
  15. DimstrreadAsNewIO.BinaryReader(fs)''流處理要傳輸?shù)奈募? 
  16. ''fs.Read(fssize,0,fssize.Length-1)  
  17. strread.Read(fssize,0,fssize.Length-1)  
  18. sendsocket.Connect(ipendpiont)''連接遠程計算機  
  19. sendsocket.Send(fssize)''發(fā)送文件  
  20. Label1.Text=fs.Length()  
  21. fs.Close()  
  22. sendsocket.Shutdown(Net.Sockets.SocketShutdown.Send)  
  23. ''關閉發(fā)送連接  
  24. sendsocket.Close()''關閉本機socket  
  25. EndSub  
  26. EndClass  
  27. 接收端PublicClassForm1  
  28. InheritsSystem.Windows.Forms.Form  
  29. DimreceivesocketAsNewNet.Sockets.Socket  
  30. (Net.Sockets.AddressFamily.InterNetwork,  
  31. Net.Sockets.SocketType.Stream,  
  32. Net.Sockets.ProtocolType.Tcp)  
  33. PrivateSubForm1_Load(ByValsenderAsSystem.Object,  
  34. ByValeAsSystem.EventArgs)HandlesMyBase.Load  
  35. DimhostipendpiontAsNewNet.IPEndPoint  
  36. (Net.IPAddress.Parse("192.168.0.1"),8888)  
  37. receivesocket.Bind(hostipendpiont)  
  38. ''建立遠程計算機的的socket  
  39. receivesocket.Listen(2)''監(jiān)聽socket  
  40. EndSub  
  41.  
  42. PrivateSubButton1_Click(ByValsenderAsObject,  
  43. ByValeAsSystem.EventArgs)HandlesButton1.Click  
  44. DimrecfsAsNewIO.FileStream("p.doc",  
  45. IO.FileMode.OpenOrCreate)  
  46. ''接收數(shù)據(jù)并將其保存到一個新的文件中  
  47. Dimrecbyte(229888)AsByte  
  48. DimhostsocketAsNet.Sockets.Socket=  
  49. receivesocket.Accept()  
  50. ''同意和發(fā)送端計算機建立連接  
  51. DimnewfilestrAsNewIO.BinaryWriter(recfs)''流寫  
  52. hostsocket.Receive(recbyte)  
  53. ''recfs.Write(recbyte,0,recbyte.Length-1)  
  54. newfilestr.Write(recbyte,0,recbyte.Length-1)  
  55. recfs.Close()  
  56. hostsocket.Shutdown(Net.Sockets.SocketShutdown.Receive)  
  57. hostsocket.Close()  
  58. EndSub  
  59. EndClass 

通過上面的簡單語句我們就完成VB.NET文件傳輸,但是這里有一點要注意,此代碼只可以接受文本文件和圖片文件,對于其他文件的發(fā)送和接收將導致編碼錯誤,如果你不相信你可以傳輸一個mp3文件,再在播放器中打開接收到的mp3文件,你會聽到只有開頭不到2秒的音樂可以播放。如果想解決這個問題你需要使用,net中的tcp/ip類或udp類來實現(xiàn),當然調用底層的socket動態(tài)庫也可以解決這個問題。

【編輯推薦】

  1. 實例講述VB.NET使用Log4Net
  2. 三分鐘學會VB.NET轉換形態(tài)
  3. VB.NET獲取硬盤信息四大法寶
  4. 講述VB.NET調用Excel的好處
  5. 簡單例子概述VB.NET新窗體
責任編輯:田樹 來源: 博客
相關推薦

2009-10-28 11:27:34

VB.NET資源文件

2009-10-27 15:49:11

VB.NET分辯率

2009-10-23 13:14:38

2009-10-21 16:00:26

VB.NET CASE

2009-10-29 14:02:24

VB和VB.NET比較

2009-11-02 10:53:34

VB.NET INI文

2009-11-02 16:22:16

VB.NET面向對象

2009-10-13 15:09:19

VB.NET使用Tre

2009-10-29 16:46:32

VB.NET語言

2010-01-14 14:21:07

2010-01-22 15:37:02

VB.NET監(jiān)控類

2009-10-28 10:15:48

VB.NET框架類庫

2009-10-12 16:51:28

VB.NET使用Ora

2009-11-10 14:30:33

VB.NET多窗體

2009-10-23 14:58:05

VB.NET傳輸表空間

2009-10-29 14:50:22

VB.NET擴展名分組

2009-10-29 11:41:27

VB.NET寫Obje

2010-01-12 11:47:09

VB.NET可選參數(shù)

2009-10-15 17:50:48

VB.NET調用API

2010-01-21 12:55:08

VB.NET對象序列
點贊
收藏

51CTO技術棧公眾號