Newsgroup: it.comp.lang.delphi
Titolo: HELP - Socket

Qualcuno mi sa dire esattamente cosa si intende per 
Socket in Object Pascal?
e la differenza che c'è tra TCustomWinSocket, TClientSOcket, TSocket,
etc..
Grazie!
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Preso dalla guida in linea di d5:
TSocket represents the handle to a Windows socket.
TCustomWinSocket is the base class for all Windows socket objects.
TServerSocket manages server socket connections for a TCP/IP server.
TClientSocket manages socket connections for a TCP/IP client.
In pratica, tu si il server ed il client.
Un socket può essere visto come un canale di comunicazione
tra 2 macchine collegate via tcpIp e lo puoi quindi usare
per inviare pacchetti di dati.
La differenza tra server e client è semplice.
Il server è in grado di processare dati da + client.
Il client puo inviare o ricevere dati da un server.
Bye
AS


 etc..
Ultimamente piovono domande su socket e internet :)
Dunque in generale i socket sono il sistema su cui si basa il livello di
trasporto del protocollo TCP/IP. Praticamente sono un insieme di primitive
per stabilire una connessione, scambiare dati ecc ecc. Una connessione viene
vista dal sistema come una linea alle cui estremita' ci sono appunto i
socket. Generalmente sono dei descrittori di file (praticamente e' un intero
che il sistema usa per indicizzare la tabella delle connessioni aperte).
In delphi il socket vero e proprio, inteso come descrittore, e' chiamato
TSocket ed e' un integer. Si puo' usare insieme alle api standard delle
socket che si trovano nella unit WinSock. In questo modo si possono usare i
socket come qualsiasi altro linguaggio (tipo c).
Oltre a cio' Delphi ci vizia offrendo al suo solito un insieme di classi e
componenti che incapsulano tutta la gestione low-level delle api, che sono
appunto i componenti TClientSocket e TServerSocket, oltre agli altri
componenti NetMaster che implementano protocolli specifici (ftp, smtp ecc
ecc).
Il problema e' che alcune versioni di questi componenti sembrano avere
alcuni bug (con cui io stesso ho avuto a che fare), che comunque vengono
fuori se dovete fare programmi seri (cioe' vanno benissimo per prove ecc).
Non so di preciso che versioni abbiano bug e quali no...
Esistono comunque altri componenti non ufficiali che implementano benissimo
l'incapsulazione dei socket, tra cui il pacchetto Indy che e' molto valido,
oppure componenti singoli di tutti i tipi.
Tra l'altro le api dei socket non sono poi complicatissime, quindi chiunque
puo' farsi un piccolo componente che faccia al caso suo.
Ciao!                {MSX}
--
{MSX}  -  
http://msx.rules.it
Mantenitore delle FAQ di it.comp.lang.delphi,
reperibili qui: 
http://gpi.infomedia.it/abc/delphi/FaqDelphi.txt

 Non so di preciso che versioni abbiano bug e quali no...
In ogni caso, visto che e' la seconda volta che parli di
questi presunti bug, sarebbe molto utile scoprire quali sono.
Personalmente, ho realizzato cose abbastanza serie con
questi componenti e non ho riscontrato bug.
Di cosa si tratta di preciso ?


 Di cosa si tratta di preciso ?
Me lo avevi gia' chiesto tempo fa.. Per quanto mi riguarda, non sono mai
riuscito a far funzionare l'evento OnError, che mi generava eccezioni anche
quando settavo handled:=true. Non so se dipendeva dal componente, dalla
versione o da cosa altro, ma certamente non dal mio codice (poche righe,
peraltro).
Capitava se non mi sbaglio quando usavo d4 (o d3, non ricordo), ora che uso
d5 non ho mai provato.
Ho sentito poi altri che parlavano di bug, sui componenti piu' avanzati (io
parlo di TClientSocket e TServerSocket) ma non so di preciso cosa.

 ha scritto nel messaggio
news:183d9c196d9a0ba06ae...@mygate.mailgate.org...


 quando settavo handled:=true.
Hmmm... la cosa mi puzza, ma non conoscendo il tuo codice, non
posso affermare nulla.  In realta' ho il sospetto che tu non
intercettassi gli errori asincroni.  In ogni caso, mi interessava
sapere se qualcuno ha scoperto dei bug importanti perche' ho
tutto un sistema di messaggi tra applicazioni scritto via socket,
utilizzando questi componenti, e non vorrei crollasse per qualche
bug nascosto (finora, non ho avuto problemi).


locale e non in rete :<
? perchè non funziona in rete?
--
Lawrence "Rhymes" Oluyede
rhy...@myself.com
cosa c'entra Visual Basic 
con la programmazione?
(Antonio Cuni, PROGRAMMATORE)

 ha scritto nel messaggio
news:creu9uom9phse2tqb...@4ax.com...
