Autor Beitrag
moddin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Sa 03.03.07 17:37 
Ich hab mich seit neustem mit der WinSock api befasst und nen kleinen
client geschrieben

Jetzt das Problem :

Ich benutze zum lesen einen Endlosthread, welcher immer recv(..) aufruft
aber diese lösung finde ich nicht sehr gut - ich will das so implementieren
wie es zb bei ScktComp geschiet - mit OnRead etc Events

wie macht man sowas in etwa - man registriert doch eine funktion wie die hier (scktcomp)

procedure TCustomWinSocket.CMSocketMessage(var Message: TCMSocketMessage);

aber wie - über WSASnySelect ???!

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: So 04.03.07 19:24 
omg feedback....

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 04.03.07 19:48 
Du siehst doch im Code von scktcomp, welche Message die registriert haben, um nachher das event auszulösen. Das ist die Message, die Windoof Dir schickt, wenn Daten auf dem von Dir belegtem Port ankommen.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: So 04.03.07 20:26 
mhhh ein bisschen genauer bitte

ich peile nich wie man ohne handle (formless application & es wird ja ein fenster handle verlangt - WSASyncSelect)
einen event callback registriere und wo gebe ich überhaupt an welche procedur dann das message empfängt

ist alles irgendwie schwammig

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: So 04.03.07 21:36 
deswegen kreieren solche Komponenten dann auch unter umständen ihr eigenes Window (unsichtbar natürlich)

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 05.03.07 01:07 
Moin!

user profile iconmoddin hat folgendes geschrieben:
Ich benutze zum lesen einen Endlosthread, welcher immer recv(..) aufruft
aber diese lösung finde ich nicht sehr gut

Warum? :gruebel: Die Indies machen es auch so - und da finden es alle gerade deshalb soo gut... :nixweiss: (und unter Lastaspekten betrachtet, ist es auch besser ;))

user profile iconmoddin hat folgendes geschrieben:
ich will das so implementieren wie es zb bei ScktComp geschiet - mit OnRead etc Events

a) Wozu die ScktComp nochmal erfinden? :P
b) Du hast doch offensichtlich den Source, da ist doch alles drin... 8)
c) Die WSA ist asynchron (=non-blocking) eine ziemliche Zicke, das ist ERHEBLICH VIEL SCHWERER handzuhaben, als synchron (=blocking socket calls mit threads)! :shock:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
moddin Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: Mi 07.03.07 17:07 
naja ich will ja auch nur nen chilligen kleinen clienten schreiben und ich finde
das die ScktComp komponenten erstens total überladen sind mit features und zudem
einen gigantischen overhead einbaun - classes sysutils synobjects - das brauch ich ales nicht

nur genüsslich winapi und pures winsock - fertig :P

ich hab jetzt auch ne lösung : ich rufe einafch select auf , warte bis er den socket
mit read freigiebt und lese dann - alles als thread natürlich

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!