新聞中心
VB與VB.NET串口及以太網(wǎng)通迅
關(guān)于串口通訊的問題:
羅平網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
很明顯,你還不知道(不會(huì)、不習(xí)慣)使用事件驅(qū)動(dòng)的方式接收數(shù)據(jù)。
建議你仔細(xì)看看串口組件(無論VB6還是VB.net)的OnComm事件,你的問題很容易解決。
關(guān)于以太網(wǎng)通訊:
在TCP通訊中端口確實(shí)可以重用,你百度一下“TCP端口重用”能查到很多示例。
但絕大多數(shù)情況下不推薦端口重用,而應(yīng)該采取服務(wù)器端建立連接池的方法。
或者,干脆不用TCP,用UDP解決也可以。
用vb.net實(shí)現(xiàn)網(wǎng)絡(luò)通信
用 vb.net 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.net多線程的簡(jiǎn)單例子,證明線程之間互不干擾,加上注釋最好。
Imports?System
Imports?System.Threading
Public?Class?Form1
Dim?TestThread1,?TestThread2?As?Thread
Public?Sub?TestMethod1()
Dim?i?As?Integer
i?=?0
While?(i??1000)
Label1.Text?=?i
i?+=?1
End?While
End?Sub
Public?Sub?TestMethod2()
Dim?i?As?Integer
i?=?0
While?(i??1000)
Label2.Text?=?i
i?+=?1
End?While
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Control.CheckForIllegalCrossThreadCalls?=?False
TestThread1?=?New?Thread(New?ThreadStart(AddressOf?TestMethod1))
TestThread1.Start()
End?Sub
Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click
Control.CheckForIllegalCrossThreadCalls?=?False
TestThread2?=?New?Thread(New?ThreadStart(AddressOf?TestMethod2))
TestThread2.Start()
End?Sub
Private?Sub?Button3_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button3.Click
Control.CheckForIllegalCrossThreadCalls?=?False
TestThread1?=?New?Thread(New?ThreadStart(AddressOf?TestMethod1))
TestThread2?=?New?Thread(New?ThreadStart(AddressOf?TestMethod2))
TestThread1.Start()
TestThread2.Start()
End?Sub
End?Class
VB.NET編寫 一個(gè) 多線程 串口通訊 程序
串口通訊不需要多線程吧
如果你執(zhí)意要學(xué)
分開學(xué) 這個(gè)是兩個(gè)不同的概念
串口通訊和多線程分開學(xué)
本文題目:vb.net線程之間通信,vbnet多線程簡(jiǎn)單
當(dāng)前URL:http://www.dlmjj.cn/article/dsgeohj.html