Salve a tutti.
Il mio obiettivo è realizzare un applicativo client server, il quale risponde al client in base alle sue richieste.
Come base ho un server echo, che rimanda indietro la stessa stringa del client.
Solo che nel mio caso, in base all'input dell'utente voglio dargli un diverso output.
Non so come fare, poichè nonostante io compari le stringhe non succede nulla.
Il codice di base che sto utilizzando è il seguente:
int main ( int argc, int argv[] )
{
std::cout << "running....\n";
std::string hello ("hello");
try
{
// Create the socket
ServerSocket server ( 30000 );
while ( true )
{
ServerSocket new_sock;
server.accept ( new_sock );
try
{
while ( true )
{
std::string data;
new_sock >> data; //Il server riceve leggendo i dati dal socket
new_sock << data;
if(data.compare(hello)==0) {
std::cout << "hai scritto hello";
}
}
}
catch ( SocketException& ) {}
}
}
catch ( SocketException& e )
{
std::cout << "Exception was caught:" << e.description() << "\nExiting.\n";
}
return 0;
}
In questo caso l'if non viene mai eseguito e non vedo mai la stringa "hai scritto hello".
Dove sbaglio?
Forse devo leggere il socket in ingresso in qualche modo e poi agire su di esso?
Grazie in anticipo