[SFML/Reseau]Adresse IP du Serveur
Bonjour à tous, dans l'optique de programmer une application réseau, j'ai suivi les tutoriaux sur les sockets en SFML sur le site officiel. Tout semble bien aller, mais j'ai un problème :
en effet, lors de l'envoi des données par le client au serveur en mode UDP, je ne sais pas quel adresse mettre :
Code:
1 2
|
Socket.Send(Buffer, sizeof(Buffer), "test", Port); |
J'ai mis "test" ne sachant pas quoi mettre à cet endroit.
Sachant qu'en mettant cette chaîne "test", l'envoi des données sur le port marche bien, mais seulement sur mon ordinateur (avec l'adresse interne de l'ordinateur) : dès que je copie colle mon code sur un autre ordi, bien connecté à Internet, et que j'envoie mon contenu sur le port pourtant correspondant, avec ce nom "test", il ne passe rien, mon serveur ne réagit pas...
Alors, je pensais qu'on avait seulement besoin du port pour faire des envois UDP, ainsi envoyer l'IP par le port pour ensuite l'utiliser, mais là je ne sais pas trop comment faire. Je pense ne pas être le seul à avoir eu ce problème (enfin j'espère !) voilà donc si vous avez une idée, n'hésitez pas !!!
Voici tout de même du code si ça vous intéresse, mais il est tiré du tutoriel, et comme dit précedemment, il marche en local sur un ordi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include "Network.h"
Network::Network()
{
Port = 4452;
}
bool Network::Send(char *Buffer)
{
// adresseServeur = sf::IPAddress(88, 183, 68, 121);
if(Socket.Send(Buffer, sizeof(Buffer), "rien", Port) != sf::Socket::Done)
{
return false;
}
else
return true;
}
bool Network::Receive()
{
char Buffer[128];
if(!Socket.Bind(Port))
{
cout << "Impossible de binder le socket au port " << Port << endl;
return false;
}
else
{
if(Socket.Receive(Buffer, sizeof(Buffer), Received, Sender, Port) != sf::Socket::Done)
{
cout << "Problème lors de la réception" << endl;
return false;
}
else
{
// On affiche l'adresse et le port de l'expéditeur
std::cout << Sender << ":" << Port << std::endl;
// On affiche le message reçu
std::cout << Buffer << std::endl; // "Hi guys !"
return true;
}
}
Send(Buffer);
}
void Network::Close()
{
Socket.Close(); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Network
{
public:
//Constructeur
Network();
//Envoie des données
bool Send(char *Buffer);
//Reception
bool Receive();
void Close();
protected:
//Adresse
sf::IPAddress ip;
sf::IPAddress Sender;
sf::IPAddress adresseServeur;
//Port
unsigned short Port;
//Reception
std::size_t Received;
//Socket
sf::SocketUDP Socket;
}; |
Merci d'avance !!