Título: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: anonimo12121 en 21 Junio 2012, 10:42 am
Bueno pues solo estoy practicando así hago este pequeño aporte fácil. Cliente#include <iostream> #include <SFML/Network.hpp> using namespace std; // Puerto 25569 struct Suma{ int n1; int n2; }; int main(int argc,char *argv[]){ sf::SocketTCP Conexion; sf::Packet Paquete; while(Conexion.Connect(25569,sf::IPAddress("localhost")) !=sf::Socket::Done)cout << "Buscando servidor..."<<endl; cout << "Servidor encontrado." <<endl; //char Datos[128]; Suma s; while(1){ cout << "Escribe el primer numero: "; cin >> s.n1; cout << "Escribe el segundo numero: "; cin >> s.n2; Paquete << s.n1 << s.n2; if(Conexion.Send(Paquete) != sf::Socket::Done)cout << "no se pudo mandar el mensaje"; } return 0; }
Servidor#include <iostream> #include <SFML/Network.hpp> using namespace std; // Puerto 25569 struct Suma{ int n1; int n2; }; int main(int argc,char *argv[]){ sf::SocketTCP Conexion; sf::SocketTCP Client; sf::IPAddress ClientAddress; sf::Packet Paquete; //char Buffer[128]; //std::size_t Received; Suma s; Conexion.Listen(25569); Conexion.Accept(Client,&ClientAddress); while(1){ if(Client.Receive(Paquete) != sf::Socket::Done); else { Paquete.GetData(); Paquete >> s.n1 >> s.n2; cout << "Client: " << s.n1+s.n2<< endl; } } return 0; }
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: 0xDani en 21 Junio 2012, 16:31 pm
¿Que libreria estas usando? No me suena SFML.
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: anonimo12121 en 21 Junio 2012, 17:41 pm
http://www.sfml-dev.org/
Es bastante buena :)
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: X3R4CK3R en 21 Junio 2012, 20:31 pm
Tú code presenta un fallo al hacer una segunda suma: El cliente envía los 2 nuevos sumandos pero el server sólo imprime el resultado de la primera suma, una y otra vez, en lugar de la nueva suma.
Saludos
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: anonimo12121 en 21 Junio 2012, 20:39 pm
Somos socios XD. Ya lo he arreglado. hay que vaciar los Packets. Client#include <iostream> #include <SFML/Network.hpp> #include <cstdio> using namespace std; // Puerto 25569 struct Suma{ int n1; int n2; }; int main(int argc,char *argv[]){ sf::SocketTCP Conexion; sf::Packet Paquete; while(Conexion.Connect(25569,sf::IPAddress("localhost")) !=sf::Socket::Done)cout << "Buscando servidor..."<<endl; cout << "Servidor encontrado." <<endl; //char Datos[128]; Suma s; while(1){ cout << "Escribe el primer numero: "; cin >> s.n1; cout << "Escribe el segundo numero: "; cin >> s.n2; Paquete << s.n1 << s.n2; if(Conexion.Send(Paquete) != sf::Socket::Done)cout << "no se pudo mandar el mensaje"; Paquete.Clear(); } return 0; }
Servidor#include <iostream> #include <SFML/Network.hpp> using namespace std; // Puerto 25569 struct Suma{ int n1; int n2; }; int main(int argc,char *argv[]){ sf::SocketTCP Conexion; sf::SocketTCP Client; sf::IPAddress ClientAddress; sf::Packet Paquete; //char Buffer[128]; //std::size_t Received; Suma s; Conexion.Listen(25569); Conexion.Accept(Client,&ClientAddress); while(1){ if(Client.Receive(Paquete) != sf::Socket::Done); else { Paquete.GetData(); Paquete >> s.n1 >> s.n2; cout << "Client: " << s.n1+s.n2<< endl; Paquete.Clear(); } } return 0; }
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: X3R4CK3R en 21 Junio 2012, 23:07 pm
Tan solo es necesario que se limpie el paquete del cliente, en el server es prescindible.
yo precisamente hacia ésto al contrario: solo lo limpiaba en el server xD
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: anonimo12121 en 21 Junio 2012, 23:53 pm
xD yo he puesto los dos para hacerlo más rápido , pero te doy la razón :) go Skype
Título: Re: Sockets, Mandando unos números y el servidor haciendo la operación.
Publicado por: DaniellesSchaffer en 14 Octubre 2015, 00:25 am
Hola!
Estoy probando tu código y lo que hice fue meter el archivo de SFML en las librerías de Code::Blocks, pero me aparecen errores como SocketTCPno es miembro de sf. Podrías ayudarme?
|