Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use Socket programming class in VB.NET

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.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report