Discussion:
[WD10] Fonctionnement du Socket UDP
(trop ancien pour répondre)
Florence
2006-12-06 15:58:38 UTC
Permalink
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.
bob
2006-12-06 16:09:21 UTC
Permalink
Post by Florence
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 ())
Post by Florence
Info(Resultat)
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.
snak31390
2018-02-12 23:45:10 UTC
Permalink
Post by 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
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()
Resultat est un booléen
Resultat=SocketCréeUDP("hlds", 27015,
"192.168.100.12")
Info(Resultat)
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
tt
2018-02-13 14:01:55 UTC
Permalink
Le Tue, 13 Feb 2018 00:45:10 +0100, snak31390 =
Post by Florence
Revoila la chiante de service...
Je suis d=E9sol=E9 mais j'essaie de comprendre toute les
subtilit=E9es de Windev.
Quelqu'un pourrait-il me donner une adresse ou je pourrais trouver un=
=
Post by Florence
tuto
sur l'utilisation du Protocole UDP avec Windev ?
Pourquoi ? Je dois me connecter =E0 un serveur de jeu en utilisant le=
protocole UDP pour comprendre le principe de connexion, j'ai repris u=
n
Post by Florence
script en PHP qui fonctionne mais je n'arrive pas trop =E0 comprendre=
comment
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 =3D 0;
$this->connected =3D true;
$this->server_password =3D "";
$this->server_password =3D 27015;
$this->server_password =3D "";
}
//Open socket to gameserver
function Connect($server_ip, $server_port, $server_password =3D "")=
{
//store server data
$this->server_ip =3D gethostbyname($server_ip);
$this->server_port =3D $server_port;
$this->server_password =3D $server_password;
//open connection to gameserver
$fp =3D fsockopen("udp://" . $this->server_ip,
$this->server_port,
&$errno, &$errstr, 5);
if($fp)
$this->connected =3D true;
else
{
$this->connected =3D false;
return false;
}
//store socket
$this->socket =3D $fp;
//return success
return true;
} //function Connect($server_ip, $server_port, $server_password =3D=
"")
//Close socket to gameserver
function Disconnect()
{
//close socket
fclose($this->socket);
$connected =3D false;
} //function Disconnect()
Resultat est un bool=E9en
Resultat=3DSocketCr=E9eUDP("hlds", 27015,
"192.168.100.12")
Info(Resultat)
ResUDP est un bool=E9en
ResUDP=3DSocketConnecte("hlds2", 27015, "88.191.28.112")
Info(ResUDP)
Dans les 2 cas la fenetre me retourne 0 comme valeur donc j'en conclu=
e =
Post by Florence
que
la connexion n'est pas =E9tablie ou que j'ai foir=E9 un truc. Merci
pour vos
r=E9ponses.
Bonjour j'ai la m=EAme probl=E9matique que vous. Avez vous trouv=E9 un=
e =
solution ?
Merci davance
Bonjour,

Il me semble que dans le bouquin d'initiation =E0 Windev il y a un bon =

exemple complet sur l'usage des sockets. Le fait que ce soit UDP ou autr=
e =

ne change rien.

-- =

Thumain Th=E9r=E8se

Continuer la lecture sur narkive:
Résultats de recherche pour '[WD10] Fonctionnement du Socket UDP' (Questions et réponses)
9
réponses
Quelles sont toutes les différences que vous voyez entre le C et le C++ ?
démarré 2007-07-31 00:33:23 UTC
programmation
Loading...