* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 21, 2024, 06:00:28 pm

Inserisci il nome utente, la password e la durata della sessione.

104 Visitatori, 0 Utenti

Autore Topic: Indy o Synapse ?  (Letto 1762 volte)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Indy o Synapse ?
« il: Dicembre 09, 2021, 07:02:42 pm »
Salve,

fermo restando che io uso Indy per le librerie di rete o i Socket direttamente, voi che cosa usate come componenti per la comunicazione TCP/IP ?

Non solo per l'HTTP, ma anche per l'FTP, per il TCP o l'UDP, Broadcast, etc ....

Ho sentito parlare ma non conosco le librerie Synapse. Le conoscete ?
Come sistemi operativi, compatbilità con (in ordine di importanza) Android, Windows, Linux, Mac.

Ciao ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:Indy o Synapse ?
« Risposta #1 il: Dicembre 09, 2021, 07:33:31 pm »
Synapse a differenza di Indy punta sui blocking sockets.
Secondo l'autore infatti la richiesta non dovrebbe essere asincrona ma sincrona e dovrebbe essere un thread apposito ad occuparsi della sua gestione.

Per maggiori informazioni si può leggere qua
http://synapse.ararat.cz/doku.php/about

Importante notare è che sul loro sito, l'ultima stable è datata 2012 ma gli sviluppi sono andati avanti sempre, c'è infatti un repository svn aggiornato.

Edit:
per quello che ne so io è una libreria molto valida
essendo scritta in Free Pascal non mi stupirebbe se girasse su tutti gli OS target
http://synapse.ararat.cz/doku.php/features
« Ultima modifica: Dicembre 09, 2021, 07:35:28 pm da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Indy o Synapse ?
« Risposta #2 il: Dicembre 09, 2021, 08:16:24 pm »
@nomorelogic
Grazie per le info, ho dato una veloce occhiata (ci ho trovato anche dei file di Indy ....  ;D ).

Edit: Jedi .... non Indy ....

L'uso della tecnologia di blocking effettivamente può avere un senso in alcuni scenari, nei mie mi sono già adattato mentalmente alle comunicazioni asincrone e lavorare ad "eventi" mi sembra la cosa più naturale.
Anche se si impostano più "Thread bloccanti" per le comunicazioni, comunque un regista ci deve essere, e questo non può essere "bloccato" in genere ....

Il vecchio (anzi antico) polling o l'evento (che è un polling mascherato alla fin fine) vanno più che bene per me.

Ciao ciao.
« Ultima modifica: Dicembre 09, 2021, 08:25:48 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Indy o Synapse ?
« Risposta #3 il: Dicembre 09, 2021, 11:45:39 pm »
per quello che ne so io è una libreria molto valida
essendo scritta in Free Pascal non mi stupirebbe se girasse su tutti gli OS target
http://synapse.ararat.cz/doku.php/features

Indy gira su tutti i target indicati, Synopse non è indicato se gira su Android e su Mac.
Comunque che sia valida è certo. Avevo letto anche io le "features" e diciamo coprirebbero a 360 gradi le mie esigenze.
Prossimamente proverò ad usarlo. Devo verificare anche il porting di alcuni componenti derivati da Indy, come il ModBus.

Su Indy avevo anche sviluppato un server FTP che uso nei miei sistemi, anche questo da verificare il porting.

L'unica cosa che mi lascia perplesso, è il "blocking". In un mondo che è "event drive", sembrerebbe quasi un ritorno alle origini.

Un porting di un progetto probabilmente riuscirà a illuminarmi  8) .

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:Indy o Synapse ?
« Risposta #4 il: Dicembre 10, 2021, 12:23:53 am »
il concetto dovrebbe essere che è il thread che si occupa di una determinata operazione ad essere sincrono
in questo scenario, in effetti, per fare più comunicazioni contemporanee bisogna lanciare più thread mentre quello principale resta libero

direi che è interessante come approccio e soprattutto, in teoria, non fa una piega


Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1395
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:Indy o Synapse ?
« Risposta #5 il: Dicembre 10, 2021, 12:57:45 am »
il concetto dovrebbe essere che è il thread che si occupa di una determinata operazione ad essere sincrono
in questo scenario, in effetti, per fare più comunicazioni contemporanee bisogna lanciare più thread mentre quello principale resta libero

direi che è interessante come approccio e soprattutto, in teoria, non fa una piega

Si e no, dipende a che comunicazioni ti riferisici. Se come spiegato dall'autore, l'esempio è di comunicazione "punto /punto" con schema "richiesta / risposta" allora sono concorde, ma non ci sono solo questi scenari.

Ad esempio io uso alcune tecniche di broadcasting (che non è il multicasting) per sincronizzare alcune attività su dispositivi di rete, e devo trasmettere uno più comandi in broadcast, e ricevere un numero indefinito di risposte. Il tutto in asincrono. Farlo in sincrono non sarebbe in alcun modo possibile, perchè non è dato sapere a priori se ci sarà una risposta, ne quante risposte eventuali potranno arrivare.

Inoltre, per quanto di mia conoscenza, non è possibile aprire un broadcast sulla stessa NIC e sulla stessa porta da più socket "contemporaneamente" ... a meno di non usare driver multiplex che esistono su Windows ma non su Android, e dubito anche su Mac o Linux.

E' per questo che ho qualche perplessità, però finchè non provo non posso certo dire che non funzionerà.

La soluzione c'è l'ho, lo già sviluppata ed è operativa da anni. Però avere un panorama di soluzioni con diversi prodotti è la cosa migliore.

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3273
  • Karma: +12/-0
Re:Indy o Synapse ?
« Risposta #6 il: Dicembre 11, 2021, 01:24:57 pm »
Io ho usato entrambi, devo dire che indy ha già un sacco di cose pronte. Mentre synapse è più flessibile, in quanto ti fai tutto tu.
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19169
  • Topic in totale: 2286
  • Online Today: 117
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 104
Total: 104

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.