EDIT : Ma résolution de problème à avancé je reformule ma question ci bas
Bonjour !
J'utilise actuellement les sockets UDP dans la communication de coordonnées, et je rencontre un problème.
Pour tester, j'ai deux applications, une serveur envoyant en permanence un paquet, et un client recevant ce paquet, en local tout fonctionne sans soucis le serveur envoie le client reçois et affiche le reçus, cepedant par Internet je ne reçois rien, le client attend. J'utilise deux pc avec deux connexion internet différentes, côté serveur le port utiliser est bien ouvert en UDP.
J'utilise le port 35566.
Note : Une connexion en TCP fonctionne très bien que ce soit en local ou que se soit par internet.
Voici le code de mes deux applications de test :
Serveur :
/* Includes et namespaces */
int main()
{
UdpSocket socket; //Socket UDP
IpAddress ip = IP_CLIENT; //IP Client
unsigned short port = 35566; //Port utilisé <OUVERT SUR LE ROUTEUR>
Packet paquet;
string mot("Bonjour");
paq << mot;
while(1)
{
socket.send(paquet,ip,port); //Envoie
cout << "Envoie : " << mot << endl;
}
return EXIT_SUCCESS;
}
Client :
/* Includes et namespaces */
int main()
{
UdpSocket socket; //Socket UDP
IpAddress ip = "IP_SERVEUR"; //IP du serveur
unsigned short port = 35566; //Port
socket.bind(35566);
Packet paquet;
string mot;
while(1)
{
paquet.clear();
if(socket.receive(paquet,ip,port) == sf::Socket::Done) //Reçus
{
paquet >> mot;
cout << "Recus : " << mot << endl; //Affichage du reçus <Normalement "Bonjour">
}
}
return EXIT_SUCCESS;
}
Un grand merci pour vos réponses !
Bonne soirée
EDIT :
Après essais et aide, j'ai eu l'occasion d'ouvrir les ports utiliser côter client, ça fonctionne. Apparament mon code serais plus un code client / client .
( le client ne se connecte pas au serveur, "ton serveur" envoie le paquet à l'adresse d' un client et si le port du client n'est pas ouvert, il ne le passera pas)
Ma question serait plus du genre : Aurait il un moyen moyen de communiquer sans ouvrir le port côter client ?