Di tutti i componenti forniti da Delphi per supportare le applicazioni che scambiano dati su una rete (internet, intranet e locale), due dei più comuni sono TServerSocket e TClientSocket, entrambi sono progettati per supportare le funzioni di lettura e scrittura su una connessione TCP / IP.
Windows Sockets (Winsock) fornisce un'interfaccia aperta per la programmazione di rete con il sistema operativo Windows. Offre una serie di funzioni, strutture di dati e parametri correlati richiesti per accedere ai servizi di rete di qualsiasi stack di protocollo. Winsock funge da collegamento tra le applicazioni di rete e gli stack di protocollo sottostanti.
I componenti socket Delphi (wrapper per Winsock) semplificano la creazione di applicazioni che comunicano con altri sistemi tramite TCP / IP e relativi protocolli. Con i socket, puoi leggere e scrivere su connessioni ad altre macchine senza preoccuparti dei dettagli del software di rete sottostante.
La tavolozza Internet sulla barra degli strumenti dei componenti di Delphi ospita il TServerSocket e TClientSocket componenti e TcpClient, tcpserver, e TUdpSocket.
Per avviare una connessione socket utilizzando un componente socket, è necessario specificare un host e una porta. In generale, ospite specifica un alias per l'indirizzo IP del sistema server; porta specifica il numero ID che identifica la connessione socket del server.
Per creare un semplice esempio utilizzando i componenti socket forniti da Delphi, creare due moduli: uno per il server e uno per il computer client. L'idea è di consentire ai client di inviare alcuni dati testuali al server.
Per iniziare, apri Delphi due volte, creando un progetto per l'applicazione server e uno per il client.
In un modulo, inserire un componente TServerSocket e un componente TMemo. Nell'evento OnCreate per il modulo, aggiungi il codice seguente:
procedura TForm1.FormCreate (Mittente: TObject);
inizio
ServerSocket1.Port: = 23;
ServerSocket1.Active: = True;
fine;
L'evento OnClose dovrebbe contenere:
procedura TForm1.FormClose
(Mittente: TObject; var Azione: TCloseAction);
inizio
ServerSocket1.Active: = false;
fine;
Dalla parte del cliente:
Per l'applicazione client, aggiungere un componente TClientSocket, TEdit e TButton a un modulo. Inserisci il seguente codice per il client:
procedura TForm1.FormCreate (Mittente: TObject);
inizio
ClientSocket1.Port: = 23;
// indirizzo TCP / IP locale del server
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = true;
fine;
procedura TForm1.FormClose (Mittente: TObject; var Azione: TCloseAction);
inizio
ClientSocket1.Active: = false;
fine;
procedura TForm1.Button1Click (Mittente: TObject);
beginif ClientSocket1.Active poi
ClientSocket1.Socket.SendText (Edit1.Text);
fine;
Il codice praticamente descrive se stesso: quando un client fa clic su un pulsante, il testo specificato all'interno del componente Edit1 verrà inviato al server con la porta e l'indirizzo host specificati.