Scrieți aplicații de rețea conștiente cu Delphi

Dintre toate componentele pe care Delphi le oferă pentru a sprijini aplicațiile care schimbă date printr-o rețea (internet, intranet și local), două dintre cele mai comune sunt TServerSocket și TClientSocket, ambele sunt concepute pentru a susține funcțiile de citire și scriere printr-o conexiune TCP / IP.

Componente de priză Winsock și Delphi

Windows Sockets (Winsock) oferă o interfață deschisă pentru programarea rețelei în cadrul sistemului de operare Windows. Oferă un set de funcții, structuri de date și parametri corelați necesari pentru a accesa serviciile de rețea ale oricăror stive de protocol. Winsock acționează ca o legătură între aplicațiile de rețea și stivele de protocol de bază.

Componentele soclurilor Delphi (învelitoare pentru Winsock) simplifică crearea de aplicații care comunică cu alte sisteme folosind TCP / IP și protocoale conexe. Cu prize, puteți citi și scrie conexiuni la alte mașini fără să vă faceți griji pentru detaliile software-ului de rețea de bază.

Paleta de internet din bara de instrumente componente Delphi găzduiește TServerSocket și TClientSocket componente precum și TcpClient, TcpServer, și TUdpSocket.

Pentru a porni o conexiune socket folosind o componentă socket, trebuie să specificați o gazdă și un port. În general, gazdă specifică un alias pentru adresa IP a sistemului server; port specifică numărul de identificare care identifică conexiunea socket-ului serverului.

Un program simplu pentru a trimite text

Pentru a construi un exemplu simplu folosind componentele de priză furnizate de Delphi, creați două formulare - unul pentru server și unul pentru computerul client. Ideea este de a permite clienților să trimită date textuale către server.

Pentru a începe, deschideți Delphi de două ori, creând un proiect pentru aplicația serverului și unul pentru client.

Partea de server:

Pe un formular, introduceți o componentă TServerSocket și o componentă TMemo. În evenimentul OnCreate pentru formular, adăugați următorul cod:

procedură TForm1.FormCreate (Expeditor: TObject);
începe
ServerSocket1.Port: = 23;
ServerSocket1.Active: = True;
Sfârșit;

Evenimentul OnClose ar trebui să conțină:

procedură TForm1.FormClose
(Expeditor: TObject; var Acțiune: TCloseAction);
începe
ServerSocket1.Active: = fals;
Sfârșit;

Partea clientului:

Pentru aplicația client, adăugați o componentă TClientSocket, TEdit și TButton într-un formular. Introduceți următorul cod pentru client:

procedură TForm1.FormCreate (Expeditor: TObject);
începe
ClientSocket1.Port: = 23;
// adresa TCP / IP locală a serverului
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = true;
Sfârșit;
procedură TForm1.FormClose (Expeditor: TObject; var Acțiune: TCloseAction);
începe
ClientSocket1.Active: = fals;
Sfârșit;
procedură TForm1.Button1Click (Expeditor: TObject);
beginif ClientSocket1.Active apoi
ClientSocket1.Socket.SendText (Edit1.Text);
Sfârșit;

Codul se descrie destul de mult: când un client face clic pe un buton, textul specificat în componenta Edit1 va fi trimis serverului cu portul specificat și adresa gazdă.