WinSock Problem VB.NET

Userbeck

Mitglied
Ich habe ein tierisches Problem..
Fehler werden nicht angezeigt, aber irgendwie habe ich das Gefühl das er nicht connected?!

Code:
Function bWinSock(ByVal szText As Object) As Boolean

        Dim pAktivWinSockClass As New WinsockClass

        pAktivWinSockClass.Protocol = ProtocolConstants.sckTCPProtocol
        pAktivWinSockClass.RemoteHost = "63.208.196.94"
        pAktivWinSockClass.RemotePort = 80
        pAktivWinSockClass.Connect()

        If pAktivWinSockClass.State = StateConstants.sckConnected Then

            MsgBox("ERROR", MsgBoxStyle.OKOnly, "WinSock!")

        End If

        Do While (pAktivWinSockClass.State <> StateConstants.sckConnected)
            If (pAktivWinSockClass.State <> StateConstants.sckConnecting) Then Exit Do
            DoEvents()
        Loop

        If pAktivWinSockClass.State = StateConstants.sckConnected Then

            Label4.Text = "NetzwerkStatus: On!"

        End If

        pAktivWinSockClass.SendData(szText)

        pAktivWinSockClass.Close()

        Return True

    End Function
 
Code:
        If pAktivWinSockClass.State = StateConstants.sckConnected Then

            MsgBox("ERROR", MsgBoxStyle.OKOnly, "WinSock!")

        End If

        Do While (pAktivWinSockClass.State <> StateConstants.sckConnected)
            If (pAktivWinSockClass.State <> StateConstants.sckConnecting) Then Exit Do
            DoEvents()
        Loop

        If pAktivWinSockClass.State = StateConstants.sckConnected Then

            Label4.Text = "NetzwerkStatus: On!"

        End If

also wenn er gleich verbunden ist, kommt die fehlermeldung, ok, wenn du es so willst... ;)
und dann fragst du:
tu schleife, solange NICHT connected. wenn status <> connecting, verlasse schleife. wenn connected, setze labeltext - wenn aber irgendein anderer state, verlasse die schleife und setze labeltext NICHT

was ist dein problem?

WENN er connected hat, wird Label4.Text = "NetzwerkStatus: On!" aufgerufen, und dann muss er connected sein, ansonsten hat er evtl nen anderen state ausser connected und connecting. dann würde er nämlich gar nichts tun.


gruß, NRF
 
Also ist der Code richtig? Ich arbeite nämlich an ein DynDNS.org Tool, was die aktuelle IP rübersendet. Ich habe auch noch meine C++ Version (working with WinSock2), die geht. Das ist der gleiche String der rübergesendet wird, aber es klappt nicht. Ich habe auch mit der Konstante vbNewLine, eben pro Codezeile einen Platz gelassen :)! Trotzdem gehts nett :(!
 
Zuletzt bearbeitet:
was kommt denn am schluss hier raus: pAktivWinSockClass.State ?

guck doch einfach, welchen state der hat.
 
Es kommt "7" raus, also connected :)! Also liegts am String :~(!
Weißt du wie die Konstante für die Escape Sequzenz "/r" heißt? Also für "/n", gibs vbNewLine :) .
 
Hab die Konstante ausgefunden, aber trotzdem gehts nett ;(!

Weißt du wie man mit WinSock die Rückmeldung bekommt vom Server?
 
WinSockClass hab ich jetzt bei mir im Framework nicht gefunden. ist das irgendsowas Com-ähnliches? :)

Daten kriegst du mit pAktivWinSockClass.Receive (so ist es jedenfalls bei Sockets von .NET) Du kannst auch sicher irgendein Delegat oder Event dazu kriegen.
Kannst die Sache zb mit System.Net.Sockets.Socket auch mit BeginReceive asynchron machen.
 
Bei .NET musst du das in dein My Project Ordner gehen, dann unter Referencen und dann die .dll bei den zwei Rastern raussuchen..
 

Neue Beiträge

Zurück