c#

位置:IT落伍者 >> c# >> 浏览文章

vs.net打造发送与接收端程序


发布日期:2019年10月03日
 
vs.net打造发送与接收端程序

本篇文章的主要开发环境是Visual Studio Visual Studio系列产品一直以来都提供了强大的控件功能然而我们利用这些控件可以编写出功能强大的应用程序本文主要利用微软的最新net开发工具为大家展示一个发送与接收端程序的开发过程让大家对Socket更加熟悉很适合net开发工具的初学者具有一定的实用价值

打开 Visual Studio 在文件 (File) 菜单上单击新建项目 (New Project) 在新建项目 (New Project) 对话框的模板 (Templates) 窗格中单击 Windows 应用程序(Windows Application)单击确定 (OK) 如图

我们需要创建两个窗体一个是发送端(Form窗体)另外一个是接收端(Form窗体)

详细操作步骤如下

选择Form窗体在Form窗体中添加如下控件

LabelLabelLabel Button控件OpenFileDialog控件

控件属性设置如下

Label 属性Text 已经发送的文件长度:

Label 属性Text 为空

Label 属性Text 字节数

Button 属性Text 发送文件

最终界面效果如下

选择Form窗体在Form窗体中添加如下控件

LabelLabelTextBox Button控件OpenFileDialog控件SaveFileDialog控件

控件属性设置如下

Label 属性Text 已接收的文件

Label 属性Text 为空

TextBox 属性Multiline

属性ScrollBars True

Both

Button 属性Text 接收文件并保存

最终界面效果如下

好了界面工作已经完成了接下来我们需要输入代码了

选择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窗体(发送端)点击发送按钮随意选择一个文本文件即可看一看效果如图

接下来我们需要选择Form窗体(接收端)点击接收文本并保存按钮图

这个窗体是利用了TCP协议进行了数据的通信在传输时必须设置同时打开发送

与接收端窗体才能进行数据的传输如图

通过以上的测试程序运行成功我们主要利用了Socket以及TCP文件传输的技术进行了数据的发送与接收希望此程序实例能够给大家带来帮助

上一篇:C#中使用XML---基于DOM的案例分析

下一篇:C#richTextBox显示不同文字颜色