Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
nikeee13_
Newbie
Newbie

Anmeldedatum: 05.01.2008
Beiträge: 4

Winsock Problem
Verfasst am: 07.01.2008, 20:19

Hi Leute!
Ich hab mal mit winsock rumgespielt:
Nen' Winsock bei VB.net. Eigentlich genauso wie bei VB6 , oder?
Doch wenn ich von meinem clienten etwas zum server senden will, dann kommt dieser error:
Code:
Wrong protocol or connection state for the requested transaction or request


Hab schonmal gegoogelt, aber da trat dieses Problem nur in VB6 auf. Auf der Microsoft seite war ein Servicepack für VB6 gegen diesen Fehler vorhanden.

Jetzt wollte ich euch fragen, wie ich dieses Problem beseitige.

Hier der Code vom Client:
Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'client_sock.Close()
        'client_sock.Connect(TextBox1.Text, TextBox2.Text)
        client_sock.RemoteHost = "127.0.0.1"
        client_sock.RemotePort = TextBox2.Text
        client_sock.Connect()

    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        [COLOR="Red"]client_sock.SendData("#status_ok#")[/COLOR]
    End Sub


Beim senden (Rotmarkiertes) tritt der Fehler auf.

Code vom Server:
Code:
   
 Private Sub server_sock_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles server_sock.ConnectionRequest
        server_sock.Close()
        server_sock.Accept(sender)
    End Sub

    Private Sub server_sock_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles server_sock.DataArrival

        'Dim sData As String = sender
        'Select Case sData
        '    Case Is = ("#status_ok#")
        '        Label2.Text = "OK!"
        'End Select

        Dim Result As String
        server_sock.GetData(Result)

        Select Case Result
            Case Is = ("#status_ok#")
                Label2.Text = "OK!"
        End Select

        'TextBox1.Text = Result
        Label2.Text = Result
    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        server_sock.LocalPort = 13377
        server_sock.Listen()
    End Sub


Das wars fürs erste von meinem Source.

Dann hab ich mich hier noch umgeguckt. Dann hab ich Winsock2007 gefunden. Ich schätzte, dass es damit keine Probleme gibt. Doch weis ich nicht, wie ich diese Steuerelemente in mein Proggie einbaue.

Hoffe, ihr könnt mir helfen.

nikeee13
I hacked 127.0.0.1 !!
 
LEON_
Newbie
Newbie

Anmeldedatum: 04.01.2008
Beiträge: 5


Verfasst am: 07.01.2008, 20:25

Bin ich verrückt, oder liegt es an den Kommentarzeichen (') wo du oft am Anfang stehen hast ?!
 
nikeee13_
Newbie
Newbie

Anmeldedatum: 05.01.2008
Beiträge: 4

WInsock prob.
Verfasst am: 07.01.2008, 20:41

nee, ich glaube daran liegts nicht.
I hacked 127.0.0.1 !!
 
Bahamut_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 12.12.2006
Beiträge: 250


Verfasst am: 08.01.2008, 14:16

Ich kann euch nur die Winsock 2007 empfehlen:

http://www.vb-x.org/viewtopic.php?t=1252

Hier noch die Erklärung wie man sie einbindet, bis auf den Solution Explorer (Lösungserforscher??) hab ich versucht alles zu übersetzen xD

Rechtsklick auf dein Projekt im "Solution Explorer" -> Eigenschaften (Properties) -> Referenzen -> Hinzufügen (Add) -> oben auf den Reiter "Durchsuchen" (Browse) -> Pfad zur Winsock2007.dll (die sollte am besten innerhalb eures Projekteordners sein)

Nun würde es schon funktionieren, allerdings fehlt dann in der Toolbox das Winsock-Objekt

Vondaher also Rechtsklick auf die Toolbox -> "Objekte auswählen" (Choose Items) -> im Reiter ".Net Framework Komponenten" auf den Button "Durchsuchen" (Browse) -> wieder Pfad zur Winsock2007.dll -> Ok

Schon ist die Winsockkomponente in euer Toolbox und voll einsatzfähig ^^
VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/
 
nikeee13_
Newbie
Newbie

Anmeldedatum: 05.01.2008
Beiträge: 4


Verfasst am: 08.01.2008, 15:44

Bahamut hat Folgendes geschrieben:
Ich kann euch nur die Winsock 2007 empfehlen:

http://www.vb-x.org/viewtopic.php?t=1252

Hier noch die Erklärung wie man sie einbindet, bis auf den Solution Explorer (Lösungserforscher??) hab ich versucht alles zu übersetzen xD

Rechtsklick auf dein Projekt im "Solution Explorer" -> Eigenschaften (Properties) -> Referenzen -> Hinzufügen (Add) -> oben auf den Reiter "Durchsuchen" (Browse) -> Pfad zur Winsock2007.dll (die sollte am besten innerhalb eures Projekteordners sein)

Nun würde es schon funktionieren, allerdings fehlt dann in der Toolbox das Winsock-Objekt

Vondaher also Rechtsklick auf die Toolbox -> "Objekte auswählen" (Choose Items) -> im Reiter ".Net Framework Komponenten" auf den Button "Durchsuchen" (Browse) -> wieder Pfad zur Winsock2007.dll -> Ok

Schon ist die Winsockkomponente in euer Toolbox und voll einsatzfähig ^^


habs jetzt hinbekommen das element einzubauen, doch das programm läuft immernochnciht richtig. Schätze, dass das am client liegt. hier der code vom Client (nochmal):
Code:
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        client_sock.Close()
        client_sock.Connect(TextBox1.Text, TextBox2.Text)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If client_sock.State <> Winsock2007.WinsockStates.Closed Then
                client_sock.Send("#status_ok")
        End If

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        client_sock.Close()
    End Sub

    Private Sub client_sock_Connected(ByVal sender As Object, ByVal e As Winsock2007.WinsockConnectedEventArgs) Handles client_sock.Connected
        Label1.Text = "Connected!!"
    End Sub

    Private Sub client_sock_Disconnected(ByVal sender As Object, ByVal e As System.EventArgs) Handles client_sock.Disconnected
        Label1.Text = "Disconnected!!"
    End Sub

End Class


zur sicherheit nochmal der neue code vom server:
Code:
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Winsock1.RemotePort = 13377
        Winsock1.Close()
        Winsock1.Listen()
    End Sub

    Private Sub Winsock1_ConnectionRequest(ByVal sender As Object, ByVal e As Winsock2007.WinsockConnectionRequestEventArgs) Handles Winsock1.ConnectionRequest
        If Winsock1.State <> Winsock2007.WinsockStates.Closed Then Winsock1.Close()
        Winsock1.Accept(sender)
    End Sub

    Private Sub Winsock1_DataArrival(ByVal sender As Object, ByVal e As Winsock2007.WinsockDataArrivalEventArgs) Handles Winsock1.DataArrival
        MsgBox("hallo!!")
        Dim sData As String = Winsock1.Get
   msgbox("Daten:" & sData)
    End Sub

I hacked 127.0.0.1 !!
 
Teto_
Poster
Poster

Anmeldedatum: 28.02.2007
Beiträge: 106


Verfasst am: 08.01.2008, 16:01

@Bahamut

Warum nimmst du ne externe komponente?Winsock ist bei VB.net doch dabei.
 
Bahamut_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 12.12.2006
Beiträge: 250


Verfasst am: 08.01.2008, 16:05

So auf den ersten Blick kann ich nix falsches erkennen, schonmal Firewall aus und, falls du nen Router hast, Portforwarding angemacht? Meine Firewall meckt nähmlich sogar wenn ich 127.0.0.1 nehme ^^

Code:
Winsock1.RemotePort = 13377


Dann muss Textbox2.Text aber auch 13377 sein.

Btw dein Fehler im 1. Post deutet draufhin, dass die Connection erst gar nicht zustande kommt...

Zitat:
Warum nimmst du ne externe komponente?Winsock ist bei VB.net doch dabei.


Gute Frage, ich wollte mich vor einer Weile über die .Net Winsock schlaumachen und bin auf die Winsock2007 gestoßen und sie hat mir sofort gut gefallen.. vll schau ich mir die "Onboard"-Variante auch mal an
VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/
 
nikeee13_
Newbie
Newbie

Anmeldedatum: 05.01.2008
Beiträge: 4


Verfasst am: 12.01.2008, 12:26

habs jetzt mit dem winsock2007 hinbekommen.
der fehler war beim server:
anstatt
Code:
 winsock1.remoteport = 13377

muss da
Code:
winsock1.localport = 13377

hin.

eingentlich ein simpler Fehler.
I hacked 127.0.0.1 !!
 
Bahamut_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 12.12.2006
Beiträge: 250


Verfasst am: 12.01.2008, 15:02


[Offtopic]

Lol die richtige Codestelle gefunden, aber die falsche Vermutung bzgl des Fehlers.. das muss man erstmal schaffen xD
VB.Net-Compiler: http://www.microsoft.com/germany/express/download/default.aspx
VB.Net-eBook: http://www.galileocomputing.de/openbook/visual_basic/
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: wrong protocol, winsock, connection, winsock2007

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Suche viele Leute für einen Downloader 570 28.09.2009, 17:10
Keine neuen Beiträge [Probleme]Hoffe Auf schnelle Antwort 473 16.07.2009, 22:08
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 916 20.05.2002, 01:28
Keine neuen Beiträge Eine kleine Frage an euch.. 1023 30.09.2007, 09:57
Keine neuen Beiträge Server und client? 558 12.04.2007, 10:51
 


[ Time: 0.0829s ][ Queries: 104 (0.0323s) ][ GZIP on - Debug on ]