AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi INDY-UDPClient:#10040 "Die Botschaft ist zu lang"
Thema durchsuchen
Ansicht
Themen-Optionen

INDY-UDPClient:#10040 "Die Botschaft ist zu lang"

Ein Thema von Hanswurst · begonnen am 12. Sep 2003 · letzter Beitrag vom 14. Sep 2003
Antwort Antwort
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#1

INDY-UDPClient:#10040 "Die Botschaft ist zu lang"

  Alt 12. Sep 2003, 12:10
Servus
ich bin z.Z. dabei , ein Proggi zu schreiben , welches mir von Battlefield1942-Servern (das Game ist eigentlich variabel , könnte auch UT2k3 nehen usw.) die Infos anzeigen soll.

Ich hab ne richtig informative Seite gefunden und da steht:
".. man muss ein UDP-Paket zu dem Server auf dem Queryport (BF1942 = 23000 ; UT = 7777) mit dem Inhalt '/Basic/' (oder andere) schicken und sofort schickt einem der Server die Gewünschten Infos.."

die Leute auf dieser Seite haben es alle mit den FastNet-Kompos , die ja unter D7 nichtmehr dabei sind , gemacht ..

auf einer anderen Seite stand , wie man es mit den INDYs machen kann ..
da mir ja nichts anderes übriggreblieben ist , hab ich also den IdUDPClient genommen (was sonst )

Problem:
wenn ich die wenigen Zeichen (/basic/) schicken will , meint er:
SocketFehler #10040 Die Botschaft ist zu lang

was aber irgendwie nicht sein kann , da es ja NUR 7 Zeichen sind ..

Einstellungen:
Host: jenachdem was man in Edit1 eingibt
Port: 23000
Buffer:8192
TimeOut:500

durch den TimeOut werden mit einem Try..Except-Block die zurückkommenden Daten gelesen (klingt komisch , soll aber funzen)

DANKE für Hilfe
CU
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 12. Sep 2003, 12:30
Moin Hanswurst,

die ausführliche Fehlermeldung sagt noch etwas mehr aus, als die Kurzform:

Zitat von PSDK - WSAEMSGSIZE:
A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself.
Kleiner Tip noch:
Bei den meisten Fehlercodes kannst Du Dir einen ausführlichen Klartext anzeigen lassen, z.B. so:

ShowMessage(SysErrorMessage(10040));
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 11:13
danke Christian
also sprich:
was der Server schickt , ist zu kurz ???

wie kann man machen , dass komplett alles , was der server schickt , also wie es bei meinem Prog sein soll (yyystatus) , aufgelistet wird ??
die "y" sind nicht die "normalen" sondern die in ASCII mit ":" überm y

CU
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 11:25
Nein, es scheint nicht in den Puffer zu passen, den du zum Empfang bereitstellst. Nur eine Vermutung, bitte nicht hauen, falls ich falsch liege.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 12:58
*Christian hau*
ne schmarn

aber warum passt eine kleine nachricht nicht in den Speicher und wird dann nicht angezeigt ?!?!?!?

da ja ein Buffer für größere Datenmengen gedacht ist (?)

und bei den anderen Leuten , die sowas machen , funzt es einfach problemlos ..

CU
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 13:27
mir fiel grad so ein ..
, dass die Biffergröße ja automatisch erzeugt wird (wenn ich mich nicht irre)..

Code:
UDPClient.ReceiveBuffer (sReceived, SizeOf(sReceived));
außerdem fiel mir noch ein , dass der Server bei jeder anfrage einige "0"-Chars schickt

was kann ich wegen den 0ern machen , da die ja nicht mit Edits, Memos usw mitspielen ??

CU
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 13:30
Moin Hanswurst,

die Message die Du verschicken willst ist sieben Zeichen lang. Na schön, der Fehler wird aber auch gemeldet, wenn der Buffer für die Anwort vom Server zu klein ist. Mach Dich doch mal schlau, wie gross die Datenmenge ist, die vom Server kommt.

PS:
Warum willst Du mich hauen
Soll ich mal unsere Wachkatzen auf Dich hetzen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 13:33
Moin Hanswurst,

Zitat:
was kann ich wegen den 0ern machen , da die ja nicht mit Edits, Memos usw mitspielen ??
Dann wirst Du die Datenstruktur des Buffers wohl aufbereiten müssen.
Wenn Du die genaue Struktur kennst, kannst Du auch einen Recordtypen mit der Struktur anlegen, und eine entsprechend typisierte Variable für den Empfang der Daten verwenden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hanswurst

Registriert seit: 21. Mai 2003
Ort: Mittelfranken
118 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 15:22
klingt sehr interessant für nen noob (bezieht sich auf mich)

aber kann man da nicht einfach sagen , dass der die 0er einfach "umbennennt" zB in ein Leerzeichen , da mich die 0er nicht interessieren ??

Danke
CU
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: INDY-UDPClient:#10040 "Die Botschaft ist zu lang&am

  Alt 14. Sep 2003, 15:24
Moin Hanswurst,

klar.
Schau Dir mal die Funktion StringReplace an.
Mit der lässt sich das ganz einfach machen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz