扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用 vb.net socket通信
创新互联从2013年创立,是专业互联网技术服务公司,拥有项目网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元柯桥做网站,已为上家服务,为柯桥各地企业和个人服务,联系电话:18982081108
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是基于.NET框架的完全对向对象的编程语言,而vb 6.0只是半面向对象的语言,使用vb.net可以编制出功能更加强大的windows程序。现在,我们把vb.net和vb 6.0做一下比较,看看vb.net对比vb 6.0有着什么样的特性和优点。 1.在vb 6.0中,创建对象的时候,需要等这个对象创建完毕后,再另外调用一个独立的方法对其进行初始化。在vb.net中, 可以利用构造函数为对象赋初值,这样就不需要进行烦琐的调用赋初值了。构造函数的使用,简化了编码的过程和出错的机会。 2.vb.net编写线程的能力比vb 6.0有很大的增强。 3.在vb 6.0中,需要首先声明一个变量,然后才能对其赋值,这样就需要写两行代码。在vb.net中,可以 使用初始化函数将这两个步骤合并在一行代码中完成,这个似乎微小的改进,提供了更少、更简单、更易于维护的代码。 4.vb.net基于.NET框架,开发者可以快速的可视化开发网络应用程序、网络服务、Windows应用程序和服务器端组件。 5.因为vb.net是基于.NET框架的,可以与其它.NET语言协同工作。 6.在vb.net中,通过Web窗体及ADO.NET,开发者可以快速开发可扩展的Web站点。 如果你能进一步学习vb.net,你会发现更多的新特性和优点
关于串口通讯的问题:
很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。
建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。
关于以太网通讯:
在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。
但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。
或者,干脆不用TCP,用UDP解决也可以。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流