AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

UDP Socket OnReceive

Offene Frage von "-TheCoke-"
Ein Thema von -TheCoke- · begonnen am 16. Sep 2007 · letzter Beitrag vom 16. Sep 2007
Antwort Antwort
-TheCoke-

Registriert seit: 15. Sep 2007
22 Beiträge
 
#1

UDP Socket OnReceive

  Alt 16. Sep 2007, 00:38
Huhu!

Wenn ich mit einem Timer alle 5 Sekunden ein Packet Sende und es dann per UDPSocket.Receiveln(); an OnReceive weiterleite funzt alles wunderbar.

Wenn ich nun aber bei OnCreate von Form1 auch versuche ein Packet zu senden kommt nichts bei OnReceive. Das Packet wird aber gesendet und ich bekomme auch eine Antwort.. Habs mir mit nem Caputre Prog angeguckt.
Hab mir gedacht, dass es bei OnCreate vlt. zu früh ist. Hab dann ein paar andere Prozeduren versucht aber auch ohne Erfolg.

Kann mir jemand weiterhelfen?

Edit: Auch wenn ich den Timer auf 10 ms stelle funktioniert es wunderbar. Nur wenn ich es ohne Timer machen will springt er immernoch nicht in OnReceive rein obwohl genau das gleiche ausgeführt wird.

Gruß,
Coke
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: UDP Socket OnReceive

  Alt 16. Sep 2007, 12:23
Zitat von -TheCoke-:
Edit: Auch wenn ich den Timer auf 10 ms stelle funktioniert es wunderbar. Nur wenn ich es ohne Timer machen will springt er immernoch nicht in OnReceive rein obwohl genau das gleiche ausgeführt wird.
Wie sieht dein Code ohne Timer denn überhaupt aus? Ich vermute eine direkte Schleife oder Rekursion? Wenn ich richtig liege, dann liegt es darin, dass du damit die Applikation beschäftigst und sie somit überhaupt keine Zeit mehr findet überhaupt dein OnReceive aufzurufen...
  Mit Zitat antworten Zitat
-TheCoke-

Registriert seit: 15. Sep 2007
22 Beiträge
 
#3

Re: UDP Socket OnReceive

  Alt 16. Sep 2007, 13:29
Hoi!

Ist keine Schleife. Ich möchte einfach schon ein Ergebnis haben, wenn sich das Programm öffnet und nicht erst nach 5 Sekunden wenn der Timer das erste mal Aktiv wird.

Der Code ist der gleiche:

Delphi-Quellcode:
begin
  UDPSocket.Sendln(#$00#$02...);
  UDPSocket.Receiveln();
end;
Das gleiche steht auch im Timer. Wie gesagt.. Ich möchte bei Programmstart direkt ein Ergebnis anzeigen können. Danach soll es alle 5 Seks durch den Timer aktualisiert werden, was auch funzt.

Gruß,
Coke
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: UDP Socket OnReceive

  Alt 16. Sep 2007, 21:15
Wieviel Nanosekunden Zeit gibst du ihm denn zwischen den beiden Befehlen, wenn sie nacheinander aufgerufen werden? Was meinste?

Das es im Timer funktioniert hängt wohl eher damit zusammen, dass du mit dem erneuten Timeraufruf das Ergebnis der letzten Anfrage einlesen kannst. Er wird bestimmt nicht sofort das Ergebnis lesen können, was du gerade ein paar Millisekunden vorher angefragt hattest...

Lange Rede, kurzer Sinn: gib ihm Zeit auf eine Antwort zu warten...
  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 18:26 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