Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <errno.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- /* portul folosit */
- #define PORT 2021
- /* codul de eroare returnat de anumite apeluri */
- extern int errno;
- int main ()
- {
- struct sockaddr_in server; // structura folosita de server
- struct sockaddr_in from;
- char msg[100]; //mesajul primit de la client
- char msgrasp[100]=" "; //mesaj de raspuns pentru client
- int sd; //descriptorul de socket
- /* crearea unui socket */
- sd = socket (AF_INET, SOCK_STREAM, 0);
- /* pregatirea structurilor de date */
- bzero (&server, sizeof (server));
- bzero (&from, sizeof (from));
- /* umplem structura folosita de server */
- /* stabilirea familiei de socket-uri */
- server.sin_family = AF_INET;
- /* acceptam orice adresa */
- server.sin_addr.s_addr = htonl (INADDR_ANY);
- /* utilizam un port utilizator */
- server.sin_port = htons (PORT);
- /* atasam socketul */
- bind (sd, (struct sockaddr *) &server, sizeof (struct sockaddr));
- /* punem serverul sa asculte daca vin clienti sa se conecteze */
- listen (sd, 5);
- /* servim in mod iterativ clientii... */
- while (1)
- {
- int client1,client2,ceva1,ceva2;
- int length = sizeof (from);
- printf ("[server]Asteptam la portul %d...\n",PORT);
- fflush (stdout);
- /* acceptam un client (stare blocanta pina la realizarea conexiunii) */
- client1 = accept (sd, (struct sockaddr *) &from, &length);
- printf ("[server] Clientul 1 conectat...\n");
- fflush (stdout);
- client2 = accept (sd, (struct sockaddr *) &from, &length);
- printf ("[server] Clientul 2 conectat...\n");
- fflush (stdout);
- /* s-a realizat conexiunea, se astepta mesajul */
- /* citirea mesajului */
- read (client1, &ceva1, sizeof(int));
- printf ("[server]Mesajul 1 a fost receptionat...%s\n", msg);
- read (client2, &ceva2, sizeof(int));
- printf ("[server]Mesajul 2 a fost receptionat...%s\n", msg);
- /* returnam mesajul clientului */
- write (client1, &ceva2, sizeof(int));
- write (client2, &ceva1, sizeof(int));
- close (client1);
- close (client2);
- } /* while */
- } /* main */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement