加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net vb socket 官网示例

发布时间:2020-12-17 07:40:57 所属栏目:百科 来源:网络整理
导读: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
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读