- 最後登錄
- 2023-4-24
- 在線時間
- 186 小時
- 註冊時間
- 2008-4-1
- 閱讀權限
- 20
- 精華
- 0
- UID
- 3887184
- 帖子
- 372
- 積分
- 21 點
- 潛水值
- 5911 米
| 分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 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
複製代碼 ... |
|