|
| Autor |
Nachricht |
nikeee13_ 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

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

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 »

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

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

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 »

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

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 »

Anmeldedatum: 12.12.2006 Beiträge: 250
|
|
| |
|
 |
|
|