Salve ragazzi! come si puo' coordinare l'invio di dati tra server/clients in modo costante e piu' veloce possibile? Attualmente sto smanettando con la programmazione di rete con le SFML(a quanto la mia prof sostiene che non cambia molto tra socket(TCP) del C e SFML), ma ho riscontrato un problema abbastanza grave.
Il mio programma deve passare ad uno stato "avanzato", cioe' non deve piu' scambiare informazioni in modo "calmo e tranquillo" (es. se arriva un comando il server risponde in modo semplice), ma in modo costante e sincronizzato tra i vari client/server, contando anche che la velocita' di ognuno di essi varia da computer a computer.
Esempi comuni del tipo di server che vorrei realizzare sono:
Browser games high motion
Applicazioni interattive high motion(collegate ad internet)
Piu' o meno tutti i server di videogames
Server di comunicazione
Esempi di server "calmi" (o "richiesta e risposta"):
Normali siti web
Applicazioni internet low motion
I programmi comuni che si fanno in classe (*che faro', studiero' la programmazione di rete in 5°, e attualmente sono a meta' 3°.)
Se non sono stato chiaro provero' ad esprimermi meglio..
Inoltre, quando si manda un messaggio che contiene uno spazio(esempio "Hello World"), il buffer viene spezzato in 2:
in un codice come questo
//Programma ricevente(server, in questo caso)
while (message != "Send")
{
socket.receive(buffer, sizeof(buffer), received);
message = buffer;
cout <<message<< endl;
if (message == "Send")
{
message = "Received Send";
cout <<message<< endl;
}
}
uscirebbe
Hello
World
Questo causa che, se mandassi il messaggio "Ciao pinco pallino Send" il server scrive:
Ciao
pinco
pallino
Send
Received Send //Riceve effettivamente la parola "Send", e il programma si chiude.
Grazie delle eventuali risposte