Entwickler-Ecke
Internet / Netzwerk - WinSock API - Wann kommt etwas zum lesen an
moddin - Sa 03.03.07 17:37
Titel: WinSock API - Wann kommt etwas zum lesen an
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 ???!
moddin - So 04.03.07 19:24
omg feedback....
HelgeLange - 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.
moddin - 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
HelgeLange - So 04.03.07 21:36
deswegen kreieren solche Komponenten dann auch unter umständen ihr eigenes Window (unsichtbar natürlich)
Narses - Mo 05.03.07 01:07
Titel: Re: WinSock API - Wann kommt etwas zum lesen an
Moin!
moddin 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 ;))
moddin 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
moddin - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!