Ich habe eine neue Klasse geerbt TcpClient-Klasse erstellt, die eine Eigenschaft namens (zum Beispiel) ClientName hat. hier ist die Definition dieser Klasse:Verbinden mit einem TCPListener mit einer erweiterten Klasse von TCP-Client
Public Class MyTcpClient
Inherits Net.Sockets.TcpClient
Private _ClintName As String
Sub New(ByVal host As String, ByVal port As Integer, ByVal ClientName As String)
MyBase.New()
_ClintName = ClientName
End Sub
Public Property ClientName()
Get
Return _ClintName
End Get
Set(ByVal value)
_ClintName = value
End Set
End Property
End Class
ich einen Augenblick dieser Klasse erstellt und versuchte, diesen Client zu einem Server (TcpListener) mit folgendem Code zu verbinden:
Try
client = New MyTcpClient(ip, port , "ClientName")
Catch ex As Exception
xUpdate("Can't connect to the server!")
End Try
Aber jedes Mal, wenn ich versuche, eine Verbindung Beim Server tritt ein Fehler bei dieser Massage auf: "System.InvalidOperationException: Der Vorgang ist bei nicht verbundenen Sockets nicht erlaubt." Nun, wenn ich MyTcpClient in Net.Socket.TcpClient ändere, wird alles in Ordnung sein.
Try
client = New Net.Socket.TcpClient(ip, port)
Catch ex As Exception
xUpdate("Can't connect to the server!")
End Try
Gibt es eine Möglichkeit zu einem TcpListener mit einer erweiterten Klasse von TcpClient wie meine Klasse zu verbinden?
Haben Sie zufällig festgestellt, dass Ihr Feld '_ClintName' ist, wenn es' _ClientName' sein sollte? – jmcilhinney