Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Socket Error 10051

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.06.2008, 00:07 Uhr
0xFF



Hi,

ich schreibe gerade eine Remote Control Software. Im LAN funktioniert diese auch super. Nur wenn ich eine globale IP-Adresse angebe, kommt der Socket Error 10051 (Client). Als Protokoll verwende ich TCP/IP auf Port 100.

So habe ich geteste:

Ich habe einen U.S. Robotics Wireless MAXg Router (USR5461). Hinter diesem läuft auf meinem PC der Client. Ein Freund hat einen anderen. Keine Ahnung wie der heißt. Auf seinem PC läuft der Client. Bei beiden Routern ist der entsprechende Port geforwarded und getriggert (kein schönes Deutsch, ich weiß ). Aber es muss doch auch noch eine Möglichkeit geben, eine Verbindung herzustellen, ohne die Router Konfiguration zu ändern. Wenn ich Online-Spiele spiele, muss ich doch auch nichts am Router einstellen und das Prinzip (Server-Client-Prinzip) ist doch das gleiche.

Woran kann das liegen bzw. wie kann ich das Problem lösen?

Hier die Beschreibung zu dem Fehler:
http://msdn.microsoft.com/en-us/library/ms740668(VS.85).aspx

MfG 0xFF
--
“A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.”
-
Alan Mathison Turing
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.06.2008, 06:13 Uhr
Hans
Library Walker
(Operator)


Hi,

ohne jetzt die msdn konsultiert zu haben, würde ich sagen, das es einfach der falsche Port ist, den Du benutzt. Denn laut IANA gehören die Ports 0-1023 zu den sogenannten Well Known Ports, zu denen man auf der aktuellen Portliste liest:

Zitat von IANA Port-numbers list:
Well Known ports SHOULD NOT be used without IANA registration

Und "should not" bedeutet sinngemäss übersetzt "darf nicht", d.h. ohne den Segen der IANA darft Du den Port nicht benutzen. Über den Port 100 steht weiter unten in der Tabelle:

Zitat von IANA Port-numbers list:
newacct.........100/tcp.....[ unauthorized use ]

ob das in diesen Zusammenhang jetzt bedeutet, das man den Port doch benutzen darf, weis ich nicht, halte es aber für eher unwahrscheinlich.

Hans



Bearbeitung:
Hab jetzt auch mal in der MSDN nachgesehen; - da liesst man für die Fehlernummer 10051:

Zitat von msdn:
Network is unreachable.

A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.

Es scheint also so zu sein, das man den Port übers "offene Netz" gar nicht verwenden darf, denn sonst müsste das Netzwerk ja erreichbar sein.

--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 01.06.2008 um 06:32 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.06.2008, 00:36 Uhr
0xFF



Hi Hans, danke für deine schnelle Antwort.

Ich habe den Port wie bei IANA beschrieben auf 49152 geändert.


Zitat:
The Dynamic and/or Private Ports are those from 49152 through 65535


Es hatte aber leider trotzdem noch nicht geklappt. Erst als der Server dann bei mir lief und ein Freund den Client bei sich startete klappte es. Ich vermute einfach mal, dass der Router meines Freundes nicht richtig konfiguriert war. Über Telefon ist das ein bisschen schlecht.

MfG 0xFF
--
“A computer would deserve to be called intelligent if it could deceive a human into believing that it was human.”
-
Alan Mathison Turing
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.06.2008, 08:10 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von Hans:

Und "should not" bedeutet sinngemäss übersetzt "darf nicht", d.h. ohne den Segen der IANA darft Du den Port nicht benutzen.

Naja eher "sollte nicht"...
Die Well Known Ports sind nur Ports wo es allgemein bekannt ist welche Programme sie verwenden. Das heißt du kannst schauen wenn du das Programm xy laufen hast dann ist der Port schon belegt und wenn du es nicht hast dann ist er frei.
Bei allen Ports > 1023 kann es dir ja genau so passieren das irgendein anderes Programm diesen bereits verwendet
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.06.2008, 08:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wenn ich richtig informiert bin, lässt dich z.b nun auch vista inzwischen ports < 1024 nur noch als administrator öffnen, genauso wie bei linux auch schon seit langem. Weil das die "trusted port range" auch ist. Darum diese Ports nur nehmen wenn man weiß was man tut. Alles größer 1024 bis 49152 sind dafür gedacht, alles drüber eben für dynamische verbindungen.

Ansonsten ist wahrscheinlich der Port eben nicht korrekt weitergeleitet bei deinem Freund. Das muss man dem Router natürlich mitteilen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: