AGB  ·  Datenschutz  ·  Impressum  







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

NonVCL datei

Ein Thema von jokerfacehro · begonnen am 26. Feb 2010 · letzter Beitrag vom 1. Mär 2010
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: NonVCL datei

  Alt 26. Feb 2010, 14:16
Zitat von Assertor:
Zitat von Luckie:
Achtung. Die Indys brauchen das Application-Objekt.
Nur für das häßliche TIdAntiFreeze (a.k.a. Delphi-Newbie-Warum-Freezt-mein-Form-bei-Blocking-Sockets & Aber-Ich-Versteht-Threads-Nicht). Wenn man das nicht nutzt, läuft Indy natürlich komplett ohne Application Objekt.

Gruß,
Assertor
Die Serverkomponente (bspw. TCPServer in v9) benutzen doch einen Thread und der wiederum benutzt synchronize und das geht nur mit Application-Objekt. Das liegt mir zumindest so im Gedächtnis.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: NonVCL datei

  Alt 26. Feb 2010, 14:38
Zitat von sirius:
@Deddy, du willst doch ne Message bekommen da kann man doch nicht 0 übergeben.
Ich hatte das beim ersten Lesen für ne Komponente gehalten
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#23

Re: NonVCL datei

  Alt 26. Feb 2010, 14:43
Zitat von sirius:
Zitat von Assertor:
Zitat von Luckie:
Achtung. Die Indys brauchen das Application-Objekt.
Nur für das häßliche TIdAntiFreeze (a.k.a. Delphi-Newbie-Warum-Freezt-mein-Form-bei-Blocking-Sockets & Aber-Ich-Versteht-Threads-Nicht). Wenn man das nicht nutzt, läuft Indy natürlich komplett ohne Application Objekt.

Gruß,
Assertor
Die Serverkomponente (bspw. TCPServer in v9) benutzen doch einen Thread und der wiederum benutzt synchronize und das geht nur mit Application-Objekt. Das liegt mir zumindest so im Gedächtnis.
Synchronize synchronisiert mit dem Hauptthread. Das muss aber nicht der GUI-Thread sein. TThread.Synchronize greift daher nicht auf TApplication zu, das ja wäre auch irgendwie ein schräges Design.

Viele Grüße
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: NonVCL datei

  Alt 26. Feb 2010, 14:58
Ach na eben. hmmm Wäre mir das mal eher aufgefallen. Ich hatte da sicher mal vor Jahren nachgesehen und mir dies so gemerkt, weil ja standardmäßig, das Applicaton-Objekt in WakeMainThread reinhängt. Aber das kann man ja problemlos ändern.

Ohje: Ich weis gar nicht wie viele Aussagen über TThread ich hier in dem Forum revidieren müsste
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#25

Re: NonVCL datei

  Alt 26. Feb 2010, 16:16
Ich habe hier jetzt zwei Extreme gesehen - Indy, die eierlegende Wollmilchsau und WinSocket-API, die low-Level Schnittstelle.
Beides ist für ein Konsolenprogramm eher ungeeignet, da entweder zu fett oder zu kompliziert und nicht objektorientiert.
Aber es gibt auch noch etwas dazwischen, nämlich die Unit ScktComp.
Damit kann man sowohl TCP-Server als auch Clients schreiben.
Aber halt nur TCP/IPv4 (IPv6 oder UDP sind nicht vorgesehen).

Für einen TCP-Client als Konsolenprogramm ist die Unit ScktComp die ideale Lösung.
Man muss mit ungefähr 13 KByte zusätzlichen Code rechnen.
Andreas
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#26

Re: NonVCL datei

  Alt 26. Feb 2010, 16:52
Zitat von shmia:
Ich habe hier jetzt zwei Extreme gesehen - Indy, die eierlegende Wollmilchsau und WinSocket-API, die low-Level Schnittstelle.
Im Mittelfeld spielt da noch Ararat Synapse eine Rolle: sehr übersichtlich, kompakt, schlank, und leistungsmäßig in allen Tests (TCP Client seitig) mit Indy auf einer Höhe. Und auch kostenlos / Open Source. ScktComp ist schon lange deprecated, wie schon gesagt wird daran nichts mehr getan.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: NonVCL datei

  Alt 26. Feb 2010, 18:09
Zitat von sirius:
Die Serverkomponente (bspw. TCPServer in v9) benutzen doch einen Thread und der wiederum benutzt synchronize und das geht nur mit Application-Objekt. Das liegt mir zumindest so im Gedächtnis.
Genau das hatte ich auch im Kopf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#28

Re: NonVCL datei

  Alt 26. Feb 2010, 19:57
Zitat von shmia:
Für einen TCP-Client als Konsolenprogramm ist die Unit ScktComp die ideale Lösung.
Man muss mit ungefähr 13 KByte zusätzlichen Code rechnen.
Das ist Ansichtssache. Grade bei einem Konsolenprogramm sind die recht einfach zu handhabenden WinApi-Befehle sehr passend.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#29

Re: NonVCL datei

  Alt 1. Mär 2010, 09:33
also mit ScktComp hab ich schon mal nen Chat programm geschrieben.
und jetz ma wirklich rudimentär mit den sockets zu arbeiten ist cool

Für AsyncSelect brauch ich jetz aber kein Fenster, wenn ich dem Thread richtig gefolgt bin? ^^
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#30

Re: NonVCL datei

  Alt 1. Mär 2010, 09:48
Für Asyncselect brauchst du ein Fenster. Die Frage ist nur, ob du asyncSelect brauchst.

Du kannst auch mit EventSelect ein Ereignis setzen lassen, wenn etwas an deinem Socket passiert. Oder du fragst regelmäßig mit Select dein Socket ab, ob etwas passiert ist. Oder du rufst einfach recv auf, welches dein Programm blockiert. Oder du setzt dein Socket auf nichtblockierend und rufst recv auf, wenn am Socket nix passiert ist, gibts einen Fehler zurück (WSAEWouldBlock).
Du kannst auch die komplette Socketarbeit in einen Thread auslagern und dort blockierend arbeiten.

Du siehst: Möglichkeiten über Möglichkeiten...
Asyncselect ist nur eine, aber eine (und die einzige) die definitiv ein Fenster brauchst.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 22:24 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