![]() |
bind() in console application
Hallo,
ich würde gerne einen Client auf 0.0.0.0:9000 lauern lassen. Nachdem ich das UDP-Socket erstellt habe und via bind auf den Port gebunden habe, stellt sich für mich noch die Frage wie ich das mit den Messages mache. Habe eine Funktion: procedure TClientClass.SocketMessage(var msg: TMessage); in der ich auch recvFrom calle. Diese sollte die msg abfangen, bzw. die routine soltle zumidnest gecallt werden oder? Meine Main, sieht dann so aus:
Code:
var
ClientClass : TClientClass; Msg: TMsg; bRet: Integer; begin ClientClass := TClientClass.Create; repeat bRet := Integer(GetMessage(Msg, 0, 0, 0)); if bRet = -1 then begin // error Break; end else begin TranslateMessage(Msg); DispatchMessage(Msg); end; until bRet = 0; end. Ich denke mal das Problem liegt an TMEssage und TMsg, oder? Danke im voraus :) |
AW: bind() in console application
Ähm, bekommen Konsolenanwendungen überhaupt Windows Nachrichten?
Delphi-Quellcode:
Es wird mir nur das Laeuft1 ausgegeben.
program Project5;
{$APPTYPE CONSOLE} uses Windows, SysUtils; var Msg: TMsg; bRet: Integer; begin repeat writeln('Laeuft1'); bRet := Integer(GetMessage(Msg, 0, 0, 0)); if bRet = -1 then begin writeln('Error'); Break; end else begin writeln(IntToStr(Msg.message)); TranslateMessage(Msg); DispatchMessage(Msg); end; writeln('Laeuft2'); until bRet = 0; end. |
AW: bind() in console application
Zitat:
|
AW: bind() in console application
Zitat:
Aber Auslesen und vorallem Behandeln muß man Diese selber (außerhalb des VCL-Threads/Hauptthreads), denn sonst funktionieren dort natürlich keine Messages. |
AW: bind() in console application
Sind die uralten Win3.1 Socket-Komponenten nicht auch Message-basiert? Ich kenne mich da nicht aus, meine aber gehört zu haben dass sich der Ansatz als sehr ungünstig herausgestellt hatte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz