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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !!