ReceiveNetworkData() und SendNetworkData(

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

ReceiveNetworkData() und SendNetworkData(

Beitrag 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
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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
(\/) (°,,,°) (\/)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag von NicTheQuick »

Welchen Port nutzt du denn?
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag von HeX0R »

Kannst Du nicht mal den Code minimiert hier posten?
Aber bitte nicht so minimiert, dass es nicht lauffähig ist.
Benutzeravatar
R3booz
Beiträge: 90
Registriert: 01.11.2012 19:28
Computerausstattung: Intel Core I3, 4GB RAM, RADEON HD 6660 1 GDDR5
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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
Rechtschreibfehler sind kostenlos und im Preis inklusive!

http://www.games-table.de.tl/
Version 5.20 LTS
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag von HeX0R »

R3booz hat geschrieben:das hat nichts mit dem code zutun es funktioniert ja alles.
Ach so, ja dann.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: ReceiveNetworkData() und SendNetworkData(

Beitrag 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.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten