本篇文章的主要开发环境是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文件传输的技术进行了数据的发送与接收希望此程序实例能够给大家带来帮助