熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

vs.net打造發送與接收端程序

2013-11-13 10:09:29  來源: .NET編程 

  本篇文章的主要開發環境是Visual Studio Visual Studio系列產品一直以來都提供了強大的控件功能然而我們利用這些控件可以編寫出功能強大的應用程序本文主要利用微軟的最新net開發工具為大家展示一個發送與接收端程序的開發過程讓大家對Socket更加熟悉很適合net開發工具的初學者具有一定的實用價值
 
  打開 Visual Studio 在文件 (File) 菜單上單擊新建項目 (New Project) 在新建項目 (New Project) 對話框的模板 (Templates) 窗格中單擊 Windows 應用程序(Windows Application)單擊確定 (OK) 如圖

2008創建發送與接收端程序(圖一)
   

  我們需要創建兩個窗體一個是發送端(Form窗體)另外一個是接收端(Form窗體)

  詳細操作步驟如下

  選擇Form窗體在Form窗體中添加如下控件

  LabelLabelLabel Button控件OpenFileDialog控件

  控件屬性設置如下  

  Label 屬性Text 已經發送的文件長度:

  Label 屬性Text 為空

  Label 屬性Text 字節數

  Button 屬性Text 發送文件  

  最終界面效果如下
2008創建發送與接收端程序(圖二)

 選擇Form窗體在Form窗體中添加如下控件

  LabelLabelTextBox Button控件OpenFileDialog控件SaveFileDialog控件

  控件屬性設置如下

  Label 屬性Text 已接收的文件

  Label 屬性Text 為空

  TextBox 屬性Multiline

  屬性ScrollBars True

  Both

  Button 屬性Text 接收文件並保存

  最終界面效果如下

2008創建發送與接收端程序(圖三)

  

  好了界面工作已經完成了接下來我們需要輸入代碼了

  選擇Form窗體進入代碼編輯器中



  首先我們需要進行聲明

  Imports SystemNetSockets

  Imports SystemNet

  Imports SystemIO  

  Public Class Form

   Inherits SystemWindowsFormsForm  

  進入Button_Click事件中

  Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick

   Dim mysocket As New Socket(AddressFamilyInterNetwork SocketTypeStream ProtocolTypeTcp)

   聲明socket

   Dim myipendponit As New IPEndPoint(IPAddressParse() ) 建立一個終結點

   OpenFileDialogFilter = 文本文件(txt) *txt

   OpenFileDialogInitialDirectory = c:\

   If OpenFileDialogShowDialog() = DialogResultOK Then

   Dim fs As New IOFileStream(OpenFileDialogFileName _

   IOFileModeOpenOrCreate IOFileAccessRead) 你所要傳輸的文件

   Dim ssize(fsLength ) As Byte

   Dim br As New BinaryReader(fs) 處理要傳輸的文件

   brRead(ssize ssizeLength )

  

   mysocketConnect(myipendponit) 連接到遠程計算機

   mysocketSend(ssize) 發送文件

   LabelText = fsLength()

   fsClose()

   mysocketShutdown(NetSocketsSocketShutdownSend)

   關閉已發送連接

   mysocketClose() 關閉本機socket

   End If

   End Sub  

  進入Form_Load事件中

  Private Sub Form_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad

   Dim window As New Form()

   windowShow()

  End Sub  

  選擇Form窗體進入代碼編輯器中

  首先我們需要進行聲明  

  Imports SystemNetSockets

  Imports SystemNet

  Imports SystemIO

  Public Class Form

   Inherits SystemWindowsFormsForm

  Dim receivesocket As New Socket(AddressFamilyInterNetwork SocketTypeStream ProtocolTypeTcp)  

  進入Form_Load事件中

  Private Sub Form_Load(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles MyBaseLoad

   Dim hostipendpoint As New IPEndPoint(IPAddressParse() )

   receivesocketBind(hostipendpoint)

   建立遠程計算機的的socket

   receivesocketListen() 監聽socket

  End Sub
進入Button_Click事件中

   Private Sub Button_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles ButtonClick

   SaveFileDialogFilter = 文本文件(txt) *txt

   SaveFileDialogFileName = 接收的文件txt

   SaveFileDialogInitialDirectory = c:\Mytext  

   If SaveFileDialogShowDialog() = DialogResultOK Then

   Dim fs As New IOFileStream(SaveFileDialogFileName _

   IOFileModeOpenOrCreate)

   接收數據並將其保存到一個新的文件

   Dim rebyte() As Byte

   Dim myhostsocket As Socket = receivesocketAccept()

   發送端計算機建立連接

   Dim wr As New BinaryWriter(fs) 流寫

   myhostsocketReceive(rebyte)

   wrWrite(rebyte rebyteLength )

   fsClose()

   myhostsocketShutdown(SocketShutdownReceive)

   myhostsocketClose()

   LabelText = SaveFileDialogFileName

  

   讀取已保存的文件

   Dim Readw As StreamReader

   Readw = FileOpenText(SaveFileDialogFileName)  

   設置指針到開始位置

   ReadwBaseStreamSeek( SeekOriginBegin)

   ReadwBaseStreamPosition =

   While (ReadwPeek() > )

   TextBoxText += ReadwReadLine() & vbCrLf

   End While

   ReadwClose()  

   End If

   End Sub  

  好了代碼輸入完畢接下來我們來運行程序測試一下

  程序啟動後會彈出Form窗體(發送端)和Form窗體(接收端)我們選擇Form窗體(發送端)點擊發送按鈕隨意選擇一個文本文件即可看一看效果如圖
2008創建發送與接收端程序(圖四)

 接下來我們需要選擇Form窗體(接收端)點擊接收文本並保存按鈕圖
2008創建發送與接收端程序(圖五)

  

  這個窗體是利用了TCP協議進行了數據的通信在傳輸時必須設置同時打開發送


與接收端窗體才能進行數據的傳輸如圖

2008創建發送與接收端程序(圖六)

  

  通過以上的測試程序運行成功我們主要利用了Socket以及TCP文件傳輸的技術進行了數據的發送與接收希望此程序實例能夠給大家帶來幫助


From:http://tw.wingwit.com/Article/program/net/201311/12737.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.