Bonjour,
je souhaite créer un client simple en c++ via SFML qui se connecte à un serveur ruby. J'ai fais un serveur simple et un client simple pour mes tests. Seulement le client tcp ne se connecte pas à mon serveur, et renvoie le status 4 : Error.
Je travaille sur SFML 2.3, sous code::block. J'ai la bonne version de sfml car j'ai testé le premier programme qui m'affiche un cercle.
Mon pare feu ne bloque pas ce port, j'ai testé avec un client ruby qui marche parfaitement.
Voici mon code :
simple_server.rb :
require 'socket' # Get sockets from stdlib
server = TCPServer.open(800)
loop {
Thread.start(server.accept) do |client|
puts "new client !"
receive = client.recv 1000, 0
puts receive
client.send "Tu pues du cul !", 0
client.close
end
}
main.cpp
#include <iostream>
#include <string>
#include <SFML/Network.hpp>
#include <SFML/System.hpp>
int main()
{
sf::TcpSocket socket;
sf::Socket::Status status = socket.connect("localhost",800,sf::seconds(10));
if(status == sf::Socket::Done)
{
char data[1000] = "Hello wesh !";
status = socket.send(data,1000);
if(status == sf::Socket::Done)
{
size_t received;
status = socket.receive(data,1000,received);
if(status == sf::Socket::Done)
{
std::string str(data);
std::cout << "received : " << str << std::endl;
socket.disconnect();
}
else
{
socket.disconnect();
std::cout << "not received, error : " << status << std::endl;
return -3;
}
}
else
{
socket.disconnect();
std::cout << "not send, error : " << status << std::endl;
return -2;
}
}
else
{
std::cout << "not connect, error : " << status << std::endl;
return -1;
}
return 0;
}
Le client attend les 10 secondes de timeout et me renvoie "not connect, error : 4" en retournant -1.
J'ai testé sous "localhost", "127.0.0.1", ou même mon adresse locale "192.168.0.11", mais rien à faire, toujours le même résultat.
Je ne sais pas du tout d'où vient le problème, quelqu'un a une idée?
Je vous remercie d'avance pour votre réponse !