Unix Socket – Server Exemple

reclame

pentru a face un proces de un server TCP, trebuie să urmați pașii de mai jos −

  • creează o priză cu apelul de sistem socket ().

  • legați soclul la o adresă utilizând apelul de sistem bind (). Pentru un soclu de server de pe Internet, o adresă constă dintr-un număr de port de pe mașina gazdă.

  • ascultați conexiunile cu apelul de sistem listen ().

  • acceptați o conexiune cu apelul de sistem accept (). Acest apel blochează de obicei până când un client se conectează cu serverul.

  • trimiteți și primiți date utilizând apelurile de sistem read() și write ().

acum să punem acești pași sub formă de cod sursă. Puneți acest cod în serverul de fișiere.c și compilați-l cu compilatorul gcc.

gestionați mai multe conexiuni

pentru a permite serverului să gestioneze mai multe conexiuni simultane, facem următoarele modificări în codul de mai sus −

  • puneți instrucțiunea accept și următorul cod într-o buclă infinită.

  • după stabilirea unei conexiuni, apelați fork() pentru a crea un nou proces.

  • procesul copil se va închide sockfd și apel doprocessing funcție, care trece noul descriptor fișier socket ca un argument. Când cele două procese și-au încheiat conversația, așa cum este indicat de doprocessing() revenind, acest proces pur și simplu iese.

  • procesul părinte Închide newsockfd. Deoarece tot acest cod se află într-o buclă infinită, acesta va reveni la instrucțiunea accept pentru a aștepta următoarea conexiune.

următorul cod seqment arată o implementare simplă a funcției de doprocesare.

reclame



Lasă un răspuns

Adresa ta de email nu va fi publicată.