189 8069 5689

vb点虐 总线通信 vb网络通信

串口 ,vb点虐 ,C# 使用一个串口,RS485总线,和一个以上模块通讯

你小子!你也太小气了吧,这样的问题一分都不给!

专注于为中小企业提供成都网站制作、网站设计、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业无棣免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

上位机采集数据要么是通过IP/TCP 协议(网卡),要么是通过串口获取。

你的是通过串口获取。

1.定义一个时钟Timer。(时钟周期为你的采集周期)

2.在时钟的Tick事件里写采集数据代码。(SerialPort类)

VB与VB.NET串口及以太网通迅

关于串口通讯的问题:

很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。

建议你仔细看看串口组件(无论VB6还是VB点虐 )的OnComm事件,你的问题很容易解决。

关于以太网通讯:

在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。

但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。

或者,干脆不用TCP,用UDP解决也可以。

有关VB.NET socket通信断开后重连问题

这个很正常,因为服务器(对方)还没对客户端(本地)做Close动作。还有一个说法是本地端控件的缓存还存在着与服务器对应Handle,只是State属性状态不是sckConnected而已。继续进行测试,你也会发现只要超过60秒通信闲置,也会自动Not sckConnected。

TCP连线,可以使用Load 控件数组进行尝试连线,当控件Close后就Unload,这可以取代必须关闭窗体、重新打开连接的问题。

用vb点虐 实现网络通信

用 vb点虐 socket通信

Dim th As Threading.Thread

2 Dim tcpl As System.Net.Sockets.TcpListener

3

4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))

6 th.Start()

7 End Sub

8

9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)

10 Try

11 If IP "" Then

12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)

13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream

14 Dim reqStream As New IO.StreamWriter(tcpStream)

15 reqStream.Write(SendMsg)

16 reqStream.Flush()

17 tcpStream.Close()

18 tcpc.Close()

19 End If

20 Catch ex As Exception

21 MsgBox(ex.Message.ToString)

22 End Try

23 End Sub

24 Private Sub MyListen()Sub MyListen()

25 Try

26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)

27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)

28 tcpl.Start()

29 While True

30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()

31 Dim MyBuffer(1024) As Byte

32 Dim i As Integer

33 i = s.Receive(MyBuffer)

34 If i 0 Then

35 Dim lstrRec As String

36 Dim j As Integer

37 For j = 0 To i - 1

38 TextBox1.Text += Chr(MyBuffer(j)) ","

39 Next

40 End If

41 End While

42 Catch ex As Exception

43 MsgBox(ex.Message.ToString)

44 End Try

45 End Sub

46

47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

48 SendMessage("192.168.0.61", TextBox2.Text)

49 End Sub


本文标题:vb点虐 总线通信 vb网络通信
文章转载:http://cdxtjz.cn/article/ddjeodd.html

其他资讯