In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
Editor to share with you how to use the Socket programming class in VB.NET. I hope you will get something after reading this article. Let's discuss it together.
I have always wanted to learn the application of Socket programming, such as how to realize the TCP connection and communication between MCU and PC through Socket programming. The network card chip is embedded in the single-chip microcomputer to connect and communicate with PC to realize the web mode of PC to manage the state of the devices controlled by the single-chip microcomputer, such as the application of intelligent home.
Here is an example to learn the application of the VB.NET Socket programming class. The following program is the code implementation in the server:
Visual Basic-tcpserver
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports Microsoft.VisualBasic
'State object for reading client
Data asynchronously
Public Class StateObject
'Client socket.
Public workSocket As Socket = Nothing
'Size of receive buffer.
Public Const BufferSize As Integer = 1024
'Receive buffer.
Public buffer (BufferSize) As Byte
'Received data string.
Public sb As New StringBuilder
End Class' StateObject
Public Class AsynchronousSocket
Listener
'Thread signal.
Public Shared allDone As New Manual
ResetEvent (False)
'This server waits for a connection
And then uses asychronous operations to
'accept the connection, get data from
The connected client
'echo that data back to the
Connected client.
'It then disconnects from the
Client and waits for another client.
Public Shared Sub Main ()
'Data buffer for incoming data.
Dim bytes () As Byte = New [Byte] (1023) {}
'Establish the local endpoint for the socket.
Dim ipHostInfo As IPHostEntry =
Dns.Resolve (Dns.GetHostName ())
Dim ipAddress As IPAddress =
IpHostInfo.AddressList (0)
Dim localEndPoint As New IPEndPoint
(ipAddress, 11000)
'Create a TCP/IP socket.
Dim listener As New Socket (AddressFamily.
InterNetwork, SocketType.Stream, ProtocolType.Tcp)
'Bind the socket to the local endpoint
And listen for incoming connections.
Listener.Bind (localEndPoint)
Listener.Listen (100)
While True
'Set the event to nonsignaled state.
AllDone.Reset ()
'Start an asynchronous socket to listen
For connections.
Console.WriteLine ("Waiting for a connection...")
Listener.BeginAccept (New AsyncCallback
(AddressOf AcceptCallback), listener)
'Wait until a connection is made and
Processed before continuing.
AllDone.WaitOne ()
End While
End Sub 'Main
Public Shared Sub AcceptCallback (ByVal ar
As IAsyncResult)
'Get the socket that handles the client request.
Dim listener As Socket = CType (ar.AsyncState, Socket)
'End the operation.
Dim handler As Socket = listener.EndAccept (ar)
'Create the state object for the async receive.
Dim state As New StateObject
State.workSocket = handler
Handler.BeginReceive (state.buffer, 0, StateObject.
BufferSize, 0, New AsyncCallback (AddressOf
ReadCallback), state)
End Sub 'AcceptCallback
Public Shared Sub ReadCallback (ByVal ar As
IAsyncResult)
Dim content As StringString = String.Empty
'Retrieve the state object and the handler socket
'from the asynchronous state object.
Dim state As StateObject = CType (ar.AsyncState
StateObject)
Dim handler As Socket = state.workSocket
'Read data from the client socket.
Dim bytesRead As Integer = handler.EndReceive (ar)
If bytesRead > 0 Then
'There might be more data, so store the data
Received so far.
State.sb.Append (Encoding.ASCII.GetString
(state.buffer, 0, bytesRead))
'Check for end-of-file tag. If it is not there, read
'more data.
Content = state.sb.ToString ()
If content.IndexOf (") >-1 Then
'All the data has been read from the
'client. Display it on the console.
Console.WriteLine ("Read {0} bytes from socket."
+ vbLf + "Data: {1}", content.Length, content)
'Echo the data back to the client.
Send (handler, content)
Else
'Not all data received. Get more.
Handler.BeginReceive (state.buffer, 0, StateObject.
BufferSize, 0, New AsyncCallback (AddressOf
ReadCallback), state)
End If
End If
End Sub 'ReadCallback
Private Shared Sub Send (ByVal handler As Socket
ByVal data As String)
'Convert the string data to byte data using
ASCII encoding.
Dim byteData As Byte () = Encoding.ASCII.GetBytes (data)
'Begin sending the data to the remote device.
Handler.BeginSend (byteData, 0, byteData.Length, 0
New AsyncCallback (AddressOf SendCallback), handler)
End Sub 'Send
Private Shared Sub SendCallback (ByVal ar As IAsyncResult)
'Retrieve the socket from the state object.
Dim handler As Socket = CType (ar.AsyncState, Socket)
'Complete sending the data to the remote device.
Dim bytesSent As Integer = handler.EndSend (ar)
Console.WriteLine ("Sent {0} bytes to client.", bytesSent)
Handler.Shutdown (SocketShutdown.Both)
Handler.Close ()
'Signal the main thread to continue.
AllDone.Set ()
End Sub 'SendCallback
End Class' AsynchronousSocketListener
After reading this article, I believe you have a certain understanding of "how to use Socket programming classes in VB.NET". If you want to know more about it, you are welcome to follow the industry information channel. Thank you for reading!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.