Fehler bei VB mit System Sockets?

... komplette Frage anzeigen

3 Antworten

also ich hab zwar noch nie in vb programmiert, aber sieht fast so aus als wäre tcpc.AcceptTcpClient nichts was dir einen boolean wert, also true oder false, ausgibt und du das daher nicht in der if benutzen kannst

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Jiingz
21.10.2016, 19:11

Ist wohl wirklich der Fehler , brauch dann wohl ne alternative.Dank dir

0

Das liegt daran, dass System.Net.Sockets.TcpListener.AcceptTcpClient() ein Objekt vom Typ System.Net.Sockets.TcpClient zurückgibt über das dann die Kommunikation zwischen Client und Server abgewickelt werden kann.

Wäre für weitere Informationen hilfreich zu wissen, was du eigentlich vorhast...

Antwort bewerten Vielen Dank für Deine Bewertung

Versuch das mal:

If (tcpc.AcceptTcpClient <> "") Then
tcpc.Stop()
End If

oder

If Not (tcpc.AcceptTcpClient = "") Then
tcpc.Stop()
End If

Vorausgesetzt, dass die Methode "AcceptTcpClient" auch vom Typ String ist (ich kenne diese gerade nicht).

Bei unbekannten Typen behelfe ich mit immer gerne mit einer Hilfs-Funktion. Die ist zwar noch aus VB5/6, aber ich denke, es sollte unter .NET auch funktionieren:

Function HasValue(ByRef anyTestVar) as Boolean
If IsObject(anyTestVar) Then
If anyTestVar Is Nothing Then Exit Function
Else
  If IsMissing(anyTestVar) Then Exit Function

  If IsNull(anyTestVar) Then Exit Function
If IsEmpty(anyTestVar) Then Exit Function
If anyTestVar = EmptyString Then Exit Function
End If
HasValue = True
End Function

Diese Funktion kannst Du wirklich überall einsetzen.

Es ist wichtig, dass die einzelnen Tests in einer eigenen, separaten If-Anweisung stehen! Im Fall von #NULL#  oder Typ Object würde sonst immer ein Fehler erzeugt.


Damit würde Dein Test dann so aussehen:

If HasValue(tcpc.AcceptTcpClient) Then
tcpc.Stop()
End If


Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?