Crearea unei programe bazate pe socket de rețea

Crearea unei aplicatii multi-user bazate pe socluri.

Lucrul pe Internet. ne întâlnim adesea tot felul de aplicatii multi-user. Ele pot fi clienti de e-mail, camere, forumuri, client FTP, etc. chat- Toate aceste aplicații folosesc pentru munca lor tot felul de protocol: FTP, POP, SMTP, HTTP, etc. Cu toate acestea, baza pentru ei este un singur protocol - TCP / IP.

aceeași aplicație tipică TCP / IP este construit pe o arhitectura client-server. Un exemplu de o aplicație construită pe această arhitectură, este un chat în timp real. În acest articol vom încerca să creeze un chat Borland Delphi înseamnă. În acest scop, avem nevoie de componentele TClientSocketi TServerSocket (Fig. 1). Am selectat componentele atunci când se lucrează cu protocolul TCP / IP, utilizând interfața socket. Dar, înainte de a merge pe de a dezvolta un chat, vom explica ce este prize.

(Fig. 1) componente Locație TClienSocket și TServerSocket

Sockets - este o interfață de programare a aplicațiilor pentru aplicații de rețea TCP / IP. Interfața prize a fost creat în anii optzeci ai sistemului de operare UNIX. Mai târziu, interfața socket a fost mutat la Microsoft Windows. Sockets sunt încă utilizate în aplicații pentru rețelele TCP / IP. În limba engleză cuvântul „prize“ - priza, adică aplicații de rețea folosesc prize. ca terminale virtuale pentru date între un schimb. Sockets sunt de trei tipuri: client. ascultare și server.

prize client comunică cu datele de server și de schimb cu ei. Componenta client este inclus în mufa T C lientSocket. Ascultarea soclu acceptă o cerere de conexiune de la o priză de client. și se conectează la server la client. Priza Ascultarea este conținută în componenta TServerSocket. Server Socket comunica cu clientul prin utilizarea unui (priză de ascultare) conexiune existentă.

Ne întoarcem spre exemplu. Vom avea două aplicații: server și client. Chat va lucra pe principiul - un server si clienti multiple. Clientul va trimite un mesaj la server, iar serverul va trimite acest mesaj către alți clienți, și anume clienții vor face schimb de mesaje între ele prin server. Pentru a scrie chat-ul, vom crea două proiecte: server și client.

Creați un server

Crearea unui formular și adăugați-l la componentele prezentate în figura 2.

Crearea unei programe bazate pe socket de rețea

În cazul procedurii de FormCreate setat la un port prin care va avea loc comunicarea. Apoi TServerSocket începe activitatea. În handler, butonul „Exit“, oprirea serverului. La finalizarea programului, este foarte important să se deconecteze TServerSocket și închide conexiunea. Mai mult, în tratare a evenimentului OnClienRead. TServerSocket de date componente de procesare sunt primite de la client. eveniment OnClienRead este generat atunci când primește date de la client. Acest lucru este tot ce trebuie să ia în considerare atunci când un client în curs de dezvoltare. Compile cerere artizanale de contact.

Procedura TForm1.ServerSocket1ClientRead (Expeditor: TObject;
Socket. TCustomWinSocket);
var
S: String;
I: Integer;
începe

S. = InTtoStr (Socket.SocketHandle) + '>' + Socket.ReceiveText;
ListBox1.Items.Add (S);

Pentru i. = 0 până la ServerSocket1.Socket.ActiveConnections - 1 do
un identificator de soclu. a trimis un mesaj, apoi.>
dacă ServerSocket1.Socket.Connections [i]. SocketHandle <> Socket.SocketHandle apoi

ServerSocket1.Socket.Connections [i]. SendText (S);
se încheie;

Creați un client

Crearea unui formular și adăugați componente pentru ea, așa cum se arată în figura 3.

Crearea unei programe bazate pe socket de rețea

ClientSocket1.Active. = True;
se încheie;

Procedura TForm1.ClientSocket1Read (Expeditor: TObject;
Socket. TCustomWinSocket);
Prelucrarea datelor de pe server
>
începe

Listbox1.Items.Add (Socket.ReceiveText);
se încheie;

articole similare