0

当该客户端通过局域网连接到服务器并将其显示为文本框中的字符串时,如何检索客户端的 IP 地址?服务器代码:

    Imports System.Net.Sockets

Imports System.Threading
Imports System.Windows.Forms
Imports System.IO

Public Class broadcast


Private thread As Thread
Private listener As New TcpListener(5234)
Private writers As New ArrayList
Private name As String



Public Sub New(ByVal name As String)
    MyBase.New()
    Me.name = name

End Sub

Public Sub start()
    listener.Start()
    thread = New Thread(AddressOf RunServer)
    thread.Start()
End Sub


Public Sub RunServer()
    Try
        While True
            Dim writer As New BinaryWriter(New NetworkStream(listener.AcceptSocket))
            writer.Write(name)

            writers.Add(writer)

        End While

    Catch exception As Exception
        'MessageBox.Show("Server application Closing")

    End Try
End Sub


Public Sub sendCommand(ByVal command As String)
    For i As Integer = 0 To writers.Count
        Try
            Dim writer As BinaryWriter
            writer = CType(writers.Item(i), BinaryWriter)
            writer.Write(command)
            writer.Flush()
        Catch inputputputexception As Exception
        End Try
    Next
End Sub

Public Sub stopAll()
    For i As Integer = 0 To writers.Count
        Try

            Dim writer As BinaryWriter
            writer = CType(writers.Item(0), BinaryWriter)
            writer.Close()
            writers.Remove(0)
        Catch inputputputexception As Exception
        End Try
    Next
    listener.Stop()



End Sub

结束类

4

1 回答 1

1

另一方的 IP 地址可从其RemoteEndPoint属性中的 Socket 获得(如果已连接)。

用于Serialize转换为SocketAddress覆盖 ToString() 以获取可读格式的地址。

于 2011-05-18T08:37:08.497 回答