Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Esercizio inventato da Marco Andronaco, LATO CLIENT
- * Crea un client e un server INET STREAM_SOCKET.
- * Quando il client si connette al server, il server chiede due numeri e ne restituisce la somma al client, chiude quindi la connessione.
- */
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <netdb.h>
- int main(void){
- int res, porta;
- char * indirizzo;
- //socket
- int sd = socket(AF_INET, SOCK_STREAM, 0);
- if(sd == -1){
- puts("Errore nella socket().");
- exit(EXIT_FAILURE);
- }
- //ottengo informazioni sul server a cui connettermi
- printf("Inserisci l'indirizzo del server: ");
- scanf("%s%*c", indirizzo);
- printf("Adesso il numero di porta: ");
- scanf("%d%*c", &porta);
- //connect
- struct hostent * hp;
- hp = gethostbyname(indirizzo);
- if (hp == NULL) {
- puts("Errore nella gethostbyname().");
- exit(EXIT_FAILURE);
- }
- struct sockaddr_in client_address;
- client_address.sin_family = AF_INET;
- client_address.sin_port = htons(porta);
- client_address.sin_addr = *(struct in_addr *)*hp->h_addr_list;
- socklen_t client_len = (socklen_t)sizeof(client_address);
- res = connect(sd, (struct sockaddr *)&client_address, client_len);
- if (res == -1) {
- puts("Errore nella connect().");
- exit(EXIT_FAILURE);
- } else
- puts("Connessione stabilita!");
- close(sd);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement