.net vb socket 官网示例

前端之家收集整理的这篇文章主要介绍了.net vb socket 官网示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Imports System Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports Microsoft.VisualBasic

Public Class GetSocket

Private Shared Function ConnectSocket(server As String,port As Integer) As Socket
Dim s As Socket = Nothing
Dim hostEntry As IPHostEntry = Nothing

' Get host related information.

hostEntry = Dns.GetHostEntry(server)

' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid

' an exception that occurs when the host host IP Address is not compatible with the address family
' (typical in the IPv6 case).
Dim address As IPAddress

For Each address In hostEntry.AddressList
Dim endPoint As New IPEndPoint(address,port)
Dim tempSocket As New Socket(endPoint.AddressFamily,SocketType.Stream,ProtocolType.Tcp)

tempSocket.Connect(endPoint)

If tempSocket.Connected Then
s = tempSocket
Exit For
End If

Next address

Return s
End Function


' This method requests the home page content for the specified server.


Private Shared Function SocketSendReceive(server As String,port As Integer) As String
'Set up variables and String to write to the server.
Dim ascii As Encoding = Encoding.ASCII
Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
Dim bytesSent As [Byte]() = ascii.GetBytes(request)
Dim bytesReceived(255) As [Byte]

' Create a socket connection with the specified server and port.

Dim s As Socket = ConnectSocket(server,port)

If s Is Nothing Then
Return "Connection Failed"
End If
' Send request to the server.
s.Send(bytesSent,bytesSent.Length,0)

' Receive the server home page content.

Dim bytes As Int32

' Read the first 256 bytes.

Dim page as [String] = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf

' The following will block until the page is transmitted.

Do
bytes = s.Receive(bytesReceived,bytesReceived.Length,0)
page = page + Encoding.ASCII.GetString(bytesReceived,bytes)
Loop While bytes > 0

Return page
End Function

'Entry point which delegates to C-style main Private Function

Public Overloads Shared Sub Main()
Main(System.Environment.GetCommandLineArgs())
End Sub


Overloads Private Shared Sub Main(args() As String)
Dim host As String
Dim port As Integer = 80

If args.Length = 1 Then
' If no server name is passed as argument to this program,
' use the current host name as default.
host = Dns.GetHostName()
Else
host = args(1)
End If

Dim result As String = SocketSendReceive(host,port)

Console.WriteLine(result)
End Sub 'Main
End Class
原文链接:https://www.f2er.com/vb/257104.html

猜你在找的VB相关文章