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 <stdlib.h>
- #include <netdb.h>
- #include <string.h>
- /* codul de eroare returnat de anumite apeluri */
- extern int errno;
- /* portul de conectare la server*/
- int port;
- int main (int argc, char *argv[])
- {
- int sd; // descriptorul de socket
- struct sockaddr_in server; // structura folosita pentru conectare
- char msg[100]; // mesajul trimis
- int nr;
- /* exista toate argumentele in linia de comanda? */
- if (argc != 3)
- {
- printf ("Sintaxa: %s <adresa_server> <port>\n", argv[0]);
- return -1;
- }
- /* stabilim portul */
- port = atoi (argv[2]);
- /* cream socketul */
- if ((sd = socket (AF_INET, SOCK_STREAM, 0)) == -1)
- {
- perror ("Eroare la socket().\n");
- return errno;
- }
- /* umplem structura folosita pentru realizarea conexiunii cu serverul */
- /* familia socket-ului */
- server.sin_family = AF_INET;
- /* adresa IP a serverului */
- server.sin_addr.s_addr = inet_addr(argv[1]);
- /* portul de conectare */
- server.sin_port = htons (port);
- /* ne conectam la server */
- if (connect (sd, (struct sockaddr *) &server,sizeof (struct sockaddr)) == -1)
- {
- perror ("[client]Eroare la connect().\n");
- return errno;
- }
- /* citirea mesajului */
- bzero (msg, 100);
- printf ("[client]Introduceti un nr: ");
- scanf("%d",&nr);
- /* trimiterea mesajului la server */
- write (sd, &nr, sizeof(int));
- int nrr;
- /* citirea raspunsului dat de server
- (apel blocant pina cind serverul raspunde) */
- read (sd, &nrr, sizeof(int));
- /* afisam mesajul primit */
- printf ("[client]Mesajul primit este: %d\n", nrr);
- /* inchidem conexiunea, am terminat */
- close (sd);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement