.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, 0, 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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值