problema client in c

Qui vengono spostati discussioni e messaggi ritenuti inadeguati per il contenuto o la forma con cui sono stati espressi.
Scrivi risposta
luaneddra89
Prode Principiante
Messaggi: 36
Iscrizione: venerdì 26 dicembre 2014, 12:25

problema client in c

Messaggio da luaneddra89 »

salve a tutti voglio realizarre un semplice scambio di messaggi tra client e server...
Il codice del server funziona, ma il client mi da un errore di segmentazione.
Vi posto il codice in attesa di un vostro aiuto

Codice: Seleziona tutto

#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netdb.h>
#include<netinet/in.h>
#include<stdlib.h>
#define MAX 5000
#define PORT 4000

void addr_initialize(struct sockaddr_in *indirizzo, int port, long IPaddr)
{
	indirizzo->sin_family = AF_INET;
	// htons: host to network conversion, short//
	indirizzo->sin_port = htons((u_short)port);
	indirizzo->sin_addr.s_addr = IPaddr;
}


// PROGRAMMA PRINCIPALE

int main(int argc,char*argv[])
{

	char buff[MAX]; // dati di invio e ricezione
	int sd;
	struct sockaddr_in server_addr;
	struct sockaddr_in mio_addr;
	int mio_addr_len = sizeof(mio_addr);
	int error;

	addr_initialize(&server_addr,PORT,inet_addr(argv[1]));

	sd = socket(AF_INET,SOCK_STREAM,0);

// crea una connessione sul socket appena creato
error = connect(sd,(struct sockaddr*)&server_addr, sizeof(server_addr));

// controllo se la connect() e andata a buon fine

if(error==0)
{
// se la connessione ha avuto successo stampa su schermo connessione eseguita
	printf("\nHo eseguito la connessione con successo\n");
	send(sd,"dati inviati dal client",strlen("dati inviati dal client"),0);
	recv(sd,buff,sizeof(buff),0);
	printf("risposta del server:%s\n",buff);
	close(sd);
	return EXIT_SUCCESS;
}
else{
	printf("\nerrore di connessione\n");
}
}
Avatar utente
giulux
Amministratore
Amministratore
Messaggi: 25441
Iscrizione: domenica 10 gennaio 2010, 12:17
Desktop: ubuntu 18.04
Distribuzione: Ubuntu 18.04.3 LTS x86_64
Sesso: Maschile
Località: Roma

Re: problema client in c

Messaggio da giulux »

Stai già trattando questo problema in quest'altra discussione e il regolamento vieta tale comportamento.
Questa la chiudo, stai più attento in futuro.
Ciao.
"Non è una segno di buona salute l'essere ben adattato ad una società malata". (Jiddu Krishnarmurti)
Scrivi risposta

Ritorna a “Quarantena”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti