PDA

Visualizza la versione completa : Realizzazione client socket ed errori di compilazione


billybilly
02-05-2006, 17:57
ciao.... sto facendo un piccolo client in C++..... Ma quando compilo (sotto Linux) ottengo questi errori....non riesco proprio a rislovere la cosa.... qualcuno mi da una mano???
Ciao e grazie Diego

Sotto posto codice e errori che ho in compilazione


################################################## ######

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define PORT 4000

void addr_initialize();

int main(int argc, char* argv[])
{
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);
error=connect(sd,(struct sockaddr*) &server_addr,sizeof(server_addr));

if(error=0)
{
printf("CONNESSO\n");
close socket(sd);
}
else
{
printf("ERRORE DI CONNESSIONE\n");
close socket(sd);
}

return 0;
}

################################################## ###

diiiego@dieubuntu:~/Desktop$ gcc -c client.cpp
client.cpp:35:2: warning: no newline at end of file
client.cpp: In function ‘int main(int, char**)’:
client.cpp:18: error: ‘inet_addr’ was not declared in this scope
client.cpp:26: error: ‘close’ was not declared in this scope
client.cpp:26: error: expected `;' before ‘socket’
client.cpp:31: error: ‘close’ was not declared in this scope
client.cpp:31: error: expected `;' before ‘socket’

billybilly
02-05-2006, 18:41
ho risolto il problema..... sto facendo questo script perche mi interessa inviare dei messaggi su una port e vedere tramite il comando : netcat -l -p "port" i messaggi che manda il mio client....solo che questo ha bisogno di un server per fare la connessione....come posso modificare la cosa senza creare un server???
Ciao e grazie

oregon
02-05-2006, 20:09
E' un controsenso. Se quello e' un client, ha bisogno di un server ... o lo scrivi tu il server o ti colleghi ad un server gia' funzionante.

Per esempio, puoi fare la prova tentando la connessione a un qualsiasi web server su internet.

Loading