VB NET开发的简单上位机程序_第1页
VB NET开发的简单上位机程序_第2页
VB NET开发的简单上位机程序_第3页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(通用)上位机Public Class Form1/用到的全局变量Public socketi As 套接字Public Class Form1/用到的全局变量Public socketi As 套接字Dim Aip As String该客户端 ipDim Aport As String该客户端 portDim fg As Boolean = True它的值表示连接是否正常Dim reg As Boolean = TrueDimfunct As StringDimfunct1 As String= Speed_LocPIDInitDimfunct2 As String= Angle_LocPI

2、DInitDim Acc As Timers.Timer 接受服务器信息的定时器Dim Isone As Boolean = TrueDim Lock_syn As New 线程锁Dim Send_Timer As Timers.Timer定时发送消息的定时器Dim end_start As Boolean/按下左上角的X套接字等。Public Sub Ending()Trysocketi.Close() Catch ce As ExceptionEnd TryTryCh.Abort()Catch ex As ExceptionEnd Try TryAcc.Stop()Catch ex As

3、ExceptionEnd Try TryCatch ex As ExceptionEnd Try fg = End Sub/ 定时发送所调用的过程Public Sub Time_Send()Dim str As String = test & Now().ToString()当前的时间Dim encText As New System.Text.UTF8Encoding()Dim btText() As BytebtText = encText.GetBytes(str)Trysocketi.Send(btText) Catch ie As ExceptionEnd TryEnd Sub/自动

4、检测连接是否断开,如果断开,则一直尝试重连并且每次重连会显示出来Public Sub Ch_fun()Dim str As Int32 = 1Dim cf As Int32 = 1While 1Threading.Thread.Sleep(80)If fg = False Then 10035 = WSAEWOULDBLOCKsocketi.Close() Button1.Enabled = True Button2.Enabled = FalseLabel11.Text = 连接断开,正在重连Dim LocalEndPoint As NewNet.IPEndPoint(Net.IPAddre

5、ss.Parse(Aip), CInt(Aport)Dim client As Net.Sockets.Socket = Nothingclient = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)尝试重连While 1TryLabel11.Text = 第 & str.ToString() & 次重连str = str + 1client.Connect(LocalEndPoint) sock

6、eti = clientDim tmp(0) As Bytesocketi.Blocking = False socketi.Send(tmp, 0, 0)Label11.Text = 连接正常socketi.Blocking = True Button2.Enabled = Truestr = 1fg = TrueExit WhileCatch ex As ExceptionLabel11.Text = 连接断开,正在重连Threading.Thread.Sleep(1000)Continue While End TryEnd WhileElseLabel11.Text = 连接正常cf =

7、 cf + 1TextBox10.Text = cf.ToString()End If End WhileEnd Sub接收消息所用的过程Public Sub Task()If fg = False ThenExit SubEnd IfAcc.Enabled = 接受消息可能会堵塞,设置该值是为了防止重复触发Dim str As New Text.StringBuilderDim str2 As String = NothingDim str3 As String = Nothing Dim by(100) As ByteDim ch(100) As Char Dim ch1(100) As

8、Char Dim err As Int32Tryerr = socketi.Receive(by)Catch e As Exceptionerr 0 Thenstr.Append(System.Text.ASCIIEncoding.ASCII.GetString(by, 0, by.Length()/Dim str1 As String = str.ToString()TextBox4.AppendText(vbNewLine & str1) TextBox4.ScrollToCaret()ElseIf err = 0 Thenfg = False Acc.Enabled = TrueExit

9、 SubEnd IfAcc.Enabled = TrueEnd Sub/ 连接过程Public Sub connecting()Ending()启动新连接前把上个连接关闭。fg = TrueDim flag As Int32 = 1Dim Ip As String = Nothing Dim Port As String = NothingIp = TextBox1.Text Aip = IpWhile Ip Is MsgBox(请输入 Ip 地址, MsgBoxStyle.OkOnly, Me.Text)ReturnEnd WhilePort = TextBox2.Text Aport =

10、PortWhile Port Is MsgBox(请输入 Port 地址, MsgBoxStyle.OkOnly, Me.Text)Return End While/链接代码Dim LocalEndPoint As New Net.IPEndPoint(Net.IPAddress.Parse(Ip), CInt(Port)Dim client As Net.Sockets.Socket = Nothing client = NewNet.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.S

11、tream, Net.Sockets.ProtocolType.Tcp) This is how youcan determine whether a socket is still connected.Dim blockingState As Boolean = client.Blocking Tryclient.Connect(LocalEndPoint)socketi = client Dim As Byteclient.Blocking = True client.Send(tmp, 0, 0)MsgBox(Connected!)Catch ie As Exception 10035

12、= WSAEWOULDBLOCKMsgBox(connet failed!, please check your Ip, Port, MsgBoxStyle.Exclamation)Button1.Enabled = TrueReturnFinallyclient.Blocking = blockingStateEnd Tryend_start = False client.Blocking = TrueMsgBox(Connected: 0, client.Connected)If flag 1 Then ReturnEnd If初始化 Ch,AccCh = New Threading.Th

13、read(AddressOf Ch_fun) Ch.Start()Acc = New Timers.Timer(80)Send_Timer = New Timers.Timer(FormatNumber(TextBox11.Text() AddHandler Acc.Elapsed, AddressOf TaskAcc.Start()AddHandler Send_Timer.Elapsed, AddressOf Time_Send Send_Timer.Start()End Sub/ 开始时设置默认参数Private Sub Form1_Load(sender As Object, e As

14、 EventArgs) HandlesMyBase.LoadTextBox1.Text = TextBox2.Text = 8888TextBox8.Text = 8TextBox5.Text = 2TextBox6.Text = 60TextBox7.Text = 18TextBox9.Text = 5TextBox11.Text = 500connecting()End Sub/ 连接按钮触发事件Private Sub Button1_Click(sender As Object, e As EventArgs) HandlesButton1.ClickLabel11.T

15、ext = connecting()End Sub/ 发送按钮Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim str As String = Nothing str = TextBox3.TextIf str Is ThenMsgBox(请输入数据, MsgBoxStyle.Information)End If/下面注释的程序是为了获取服务器返回的参数,可以忽略。Dim fun(40) As CharDim can1(20) As CharDim can2(20) As C

16、harDim can3(20) As CharDim i As Int32 = 0, j As Int32 = 0 Dim size As Int32 = str.LengthWhile i sizeIf str.Chars(i) = (cThenExit WhileEnd Iffun(j) = str.Chars(i) j = j +1i = i + End Whilei = i + 1 j = 0While i sizeIf str.Chars(i) = ,cThenExit WhileEnd Ifcan1(j) = str.Chars(i) j = j +1i = i + End Whi

17、lei = i + 1 j = 0While i sizeIf str.Chars(i) = ,c Or str.Chars(i) = )cThenExit WhileEnd Ifcan2(j) = str.Chars(i)j = j+ 1i = i+ 1EndWhilei = i + 1 j = 0While i sizeIf str.Chars(i) = ,c Or str.Chars(i) = )cThenExit WhileEnd Ifcan3(j) = str.Chars(i) j = j +1i = i + End WhileIf socketi.Connected = False

18、 ThenEnd IfDim str1 As String = TextBox4.TextIf str1 ThenTextBox4.AppendText(vbNewLine & str & vbNewLine)ElseTextBox4.AppendText(str & vbNewLine)End IfTextBox4.ScrollToCaret()End Sub/ 断开按钮Private Sub Button3_Click(sender As Object, e As EventArgs) HandlesButton3.ClickTrysocketi.Close()Catch be As Ex

19、ceptionEnd TryTryCh.Abort()Catch ex As ExceptionEnd Try TryAcc.Stop()Catch ex As ExceptionEnd Try TryCatch ex As ExceptionEnd TryMsgBox(连接断开) reg = TrueButton1.Enabled = True Button2.Enabled = TrueLabel11.Text = 状态SyncLock Lock_syn Isone = TrueEnd SyncLockEnd SubPrivate Sub Button4_Click(sender As O

20、bject, e As EventArgs) Handles Button4.ClickDim str1 As String = funct1Dim str2 As String = TextBox8.Text Dim str3 As String = TextBox5.Text Dim str4 As String = TextBox6.Text Dim str5 As Stringstr5 = str1 & ( & str2 & , & str3 & , & str4 & ) & vbNewLine Dim encText As New System.Text.UTF8Encoding()

21、Dim btText() As BytebtText = encText.GetBytes(str5) socketi.Send(btText)Dim s As String = TextBox4.TextTextBox4.AppendText(vbNewLine & str5 & vbNewLine) TextBox4.ScrollToCaret()End SubPrivate Sub TextBox8_TextChanged(sender As Object, e As EventArgs) Handles TextBox8.TextChangedEnd SubPrivate Sub Label4_Click_1(sender As Object, e As EventArgs) Handles Label4.ClickEnd SubPrivate Sub TextBox6_TextChanged(sender As Object, e As EventArgs) Handles TextBox6.TextChangedEnd SubPri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论