Seite 1 von 2
ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 18:31
von R3booz
Guden Tach,
ich hab ein paar Probleme mit ReceiveNetworkData() und SendNetworkData().
Nähmlich auf den Computern meiner Schule sagt SendNetDat, dass alle Daten (65536byte) gesendet wurden aber bei RecNetDat kamen nur ein paar Byte an (12760byte) dann wurden es komischerweise weniger und dann kam gar nichts mehr an und -1 wurde ausgegeben. Auf der SendNetDat Seite (Client) wurde aber nichts davon gemeldet, dass Programm hing an der Stelle und erst als ich die RecNetDat Seite beendet hatte (Server) lief es weiter und meldete sofort das die Verbindung unterbrochen wurde...
Habt ihr Ideen woran das liegt?
(Bevor ich den ganzen Quellcode poste mit zuvielen Zeilen so 800...)
mfg R3booz
PS: Habs kurz verbessert
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 19:11
von KeyKon
Es wäre ganz hilfreich wenigstens den Ausschnitt wo du sendest und wo du empfängst hier zu posten.
Ich gehe mal stark davon aus, dass du versuchst zu viele Daten auf einmal zu senden, und dadurch irgendwelche Puffer volllaufen.
Hast du diesen Satz aus der Hilfe beachtet?
Bei UDP-Verbindungen beträgt die maximale 'Länge' 2048. Bei TCP-Verbindungen beträgt die maximale 'Länge' 65536.
LG KeyKon
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 19:13
von STARGÅTE
Der Rückgabewert von Send gibt nur an, das die Daten verschickt werden können.
Bei Receive kannst du aber nun nciht davon ausgehen, dass alle Byte mit einem Schlag ankommen, Receive muss immer in einer Schleife aufgerufen werden, bis alle daten empfangen wurden.
Such mal nach ReceiveNetworkData, ich habe schon genügend Beispiele dazu gepostet.
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 19:47
von R3booz
@KeyKon: Wie du sehen kannst habe ich geschrieben: "...alle Daten (65536byte) gesendet...", ja ich habe die maximale TCP Größe beachtet und der reservierte Speicher stimmt auch
@Stargate: Da ich gesagt habe das mehrere Werte zurückkommen muss ich wohl eine schleife benutzt habe und dies ist auch der fall
Es ist alles so wie im Beispiel umgesetzt und funktioniert auch alles hier auf meinen Notebook so wie es soll (WinXP). Die Schulcomputer haben auch XP kann sein, dass es da aber an der Sperrsoftware hapert. auf meinem tower (win7 64bit) läuft es auch nicht....
mfg R3booz
PS: ich such den code mal raus
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 20:32
von NicTheQuick
Welchen Port nutzt du denn?
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 20:43
von R3booz
6832 aber ich habs mit allen möglichen versucht geht mit keinem.
ich probier es nächsten montag nochmal in der schule aus und mach screenshots
mfg R3booz
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 21:27
von HeX0R
Kannst Du nicht mal den Code minimiert hier posten?
Aber bitte nicht so minimiert, dass es nicht lauffähig ist.
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 22:15
von R3booz
das hat nichts mit dem code zutun es funktioniert ja alles.
meine frage bezog sich mehr darauf kann man durch andere Software den Transfer stören?
in meinem fall z.b software die in schulen installiert ist (bildschirm sperren etc inklusive)
habt ihr da ahnung von?
mfg R3booz
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 30.10.2013 23:58
von HeX0R
R3booz hat geschrieben:das hat nichts mit dem code zutun es funktioniert ja alles.
Ach so, ja dann.
Re: ReceiveNetworkData() und SendNetworkData(
Verfasst: 31.10.2013 08:45
von Thorium
R3booz hat geschrieben:das hat nichts mit dem code zutun es funktioniert ja alles.
meine frage bezog sich mehr darauf kann man durch andere Software den Transfer stören?
in meinem fall z.b software die in schulen installiert ist (bildschirm sperren etc inklusive)
Unwarscheinlich. Wenn eine Software den Transfer unterbinded kommt nix an. Es ist warscheinlicher das an deinem Code was nicht stimmt. Auch wenn du meinst dem sei nicht so. Oft sind es Kleinigkeiten, die man leicht übersieht, welche zu merkwürdigen Effekten führen.
Das da ne Software dazwischenfunkt ist wie gesagt unwarscheinlich, auf deinem Tower zuhause läufts ja auch nicht.
Ich nutzte die Network Lib von PB mittlerweile intensiv und läuft auf vielen Rechnern auf der Arbeit und auch zuhause problemlos. Man kann halt z.B. schnell mal nen Fehler in die Empfangsschleife einbauen.