Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD10] Fonctionnement du Socket UDP

2 réponses
Avatar
Florence
Revoila la chiante de service...
Je suis désolé mais j'essaie de comprendre toute les subtilitées de Windev.
Quelqu'un pourrait-il me donner une adresse ou je pourrais trouver un tuto
sur l'utilisation du Protocole UDP avec Windev ?

Pourquoi ? Je dois me connecter à un serveur de jeu en utilisant le
protocole UDP pour comprendre le principe de connexion, j'ai repris un
script en PHP qui fonctionne mais je n'arrive pas trop à comprendre comment
le réutiliser en WLangage :

Code du Script : (Extrait de PHPRcon)

class Rcon
{

var $challenge_number;
var $connected;
var $server_ip;
var $server_password;
var $server_port;
var $socket;


//Constructor
function Rcon()
{
$this->challenge_number = 0;
$this->connected = true;
$this->server_password = "";
$this->server_password = 27015;
$this->server_password = "";
}


//Open socket to gameserver
function Connect($server_ip, $server_port, $server_password = "")
{
//store server data
$this->server_ip = gethostbyname($server_ip);
$this->server_port = $server_port;
$this->server_password = $server_password;

//open connection to gameserver
$fp = fsockopen("udp://" . $this->server_ip, $this->server_port,
&$errno, &$errstr, 5);
if($fp)
$this->connected = true;
else
{
$this->connected = false;
return false;
}

//store socket
$this->socket = $fp;

//return success
return true;

} //function Connect($server_ip, $server_port, $server_password = "")


//Close socket to gameserver
function Disconnect()
{
//close socket
fclose($this->socket);
$connected = false;

} //function Disconnect()

Donc pour ce faire j'ai utilisé le code suivant :

Resultat est un booléen

Resultat=SocketCréeUDP("hlds", 27015, "192.168.100.12")

Info(Resultat)

Et ensuite :
ResUDP est un booléen

ResUDP=SocketConnecte("hlds2", 27015, "88.191.28.112")

Info(ResUDP)

Dans les 2 cas la fenetre me retourne 0 comme valeur donc j'en conclue que
la connexion n'est pas établie ou que j'ai foiré un truc. Merci pour vos
réponses.

2 réponses

Avatar
bob
On Wed, 06 Dec 2006 16:58:38 +0100, Florence wrote:

Donc pour ce faire j'ai utilisé le code suivant :

Resultat est un booléen

Resultat=SocketCréeUDP("hlds", 27015, "192.168.100.12")



Est-ce que l'adresse "192.168.100.12" correspond bien à une IP utilisé au
même moment par ton PC ? Si non, ca ne fonctionnera pas. Le plus simple
est de ne pas préciser ce paramètre. Sinon Utilise NetAdresseIP ()
Par exemple :
Resultat=SocketCréeUDP("hlds", 27015, NetAdresseIP ())

Info(Resultat)

Et ensuite :
ResUDP est un booléen

ResUDP=SocketConnecte("hlds2", 27015, "88.191.28.112")



Pour utiliser la Socket crée, tu n'as pas a te connecter. UDP est un
protocole non connecté.

Pour l'utiliser tu dois préciser le port et l'IP lors des
lectures/ecritures. Par exe :
SocketEcrit("hlds2", "Un message", "88.191.28.112", 27015) ALORS

En espérant avoir aidé.

Bob.
Avatar
snak31390
Le mercredi 06 Décembre 2006 à 16:58 par Florence :
Revoila la chiante de service...
Je suis désolé mais j'essaie de comprendre toute les
subtilitées de Windev.
Quelqu'un pourrait-il me donner une adresse ou je pourrais trouver un tuto
sur l'utilisation du Protocole UDP avec Windev ?
Pourquoi ? Je dois me connecter à un serveur de jeu en utilisant le
protocole UDP pour comprendre le principe de connexion, j'ai repris un
script en PHP qui fonctionne mais je n'arrive pas trop à comprendre
comment
le réutiliser en WLangage :
Code du Script : (Extrait de PHPRcon)
class Rcon
{
var $challenge_number;
var $connected;
var $server_ip;
var $server_password;
var $server_port;
var $socket;
//Constructor
function Rcon()
{
$this->challenge_number = 0;
$this->connected = true;
$this->server_password = "";
$this->server_password = 27015;
$this->server_password = "";
}
//Open socket to gameserver
function Connect($server_ip, $server_port, $server_password = "")
{
//store server data
$this->server_ip = gethostbyname($server_ip);
$this->server_port = $server_port;
$this->server_password = $server_password;
//open connection to gameserver
$fp = fsockopen("udp://" . $this->server_ip,
$this->server_port,
&$errno, &$errstr, 5);
if($fp)
$this->connected = true;
else
{
$this->connected = false;
return false;
}
//store socket
$this->socket = $fp;
//return success
return true;
} //function Connect($server_ip, $server_port, $server_password =
"")
//Close socket to gameserver
function Disconnect()
{
//close socket
fclose($this->socket);
$connected = false;
} //function Disconnect()
Donc pour ce faire j'ai utilisé le code suivant :
Resultat est un booléen
Resultat=SocketCréeUDP("hlds", 27015,
"192.168.100.12")
Info(Resultat)
Et ensuite :
ResUDP est un booléen
ResUDP=SocketConnecte("hlds2", 27015, "88.191.28.112")
Info(ResUDP)
Dans les 2 cas la fenetre me retourne 0 comme valeur donc j'en conclue que
la connexion n'est pas établie ou que j'ai foiré un truc. Merci
pour vos
réponses.
Bonjour j'ai la même problématique que vous. Avez vous trouvé une solution ?
Merci davance