Les sockets avec PHP

reem
Invité n'ayant pas de compte PHPfrance

09 oct. 2007, 23:57

bonjour à tous,

Je voudrais faire une connexion client/serveur à l'aide des sockets, je programme en PHP. Le client et le serveur disposent de deux bases de données de structures identiques, le client peut faire des modification dans sa base de données, mais dès qu'il se connecte au serveur, la base de données du serveur doit être mise à jour avec les modifications faites par le client.

En gros, ce que je veux faire c'est :

- Le client se connecte au serveur pour publier ses modifications
- Le serveur lui demande de s'authentifier
- Une page d'authentification s'affiche chez le client et les informations sont envoyées au serveur (login+mot de passe)
- Le serveur vérifie l'existence du login et du mot de passe dans sa base de données pour accepter ou refuser le client
- Si le client est accepté, les modifications sont envoyées au serveur

Voilà tout.

J'ai fait un essai de connexion entre le client et le serveur, ça marche quand j'ai essayé sur la même machine mais pas d'un ordinateur distant et comme je n'ai jamais travaillé avec les sockets, je ne sais pas ce que je dois faire.

Est ce que quelqu'un peut m'aider SVP ?

Merci.

ViPHP
ViPHP | 2287 Messages

10 oct. 2007, 06:47

Bonjour,

Sur le serveur, quelle adresse IP as-tu passé en paramètre à socket_bind() ?
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 17 Messages

11 oct. 2007, 12:21

bonjour,

J'ai mis socket_bind($sock, $adr_serveur, $port_serveur);

Merci de m'avoir répondu.

ViPHP
ViPHP | 2287 Messages

11 oct. 2007, 15:55

ok, et que vaut $adr_serveur ? Un petit
echo  $adr_serveur;
avant le socket_bind s'impose.

Explication : pour que ton serveur soit ouvert aux connexions extérieures, il faut que $adr_serveur contienne une IP réseau valide (valide au niveau du client).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 17 Messages

11 oct. 2007, 19:37

Salut,

c'est une IP internet, donc forcément valide au niveau du client, non ?

Eléphanteau du PHP | 32 Messages

24 oct. 2007, 19:19

Bonjour

Alors je ne vais pas résoudre ton problème j ai pas assez d'info en plus je sais même pas si il est toujours d actualité, par contre je vais te donner une petite astuce que j'utilise .

tu peux tester à partir du poste client un telnet sur l'adresse_ip : port concerné , si tu as une connexion refused c est que tu n'atteints même pas le serveur. (problème de forward , firewall .... ) .

Eléphant du PHP | 443 Messages

24 oct. 2007, 21:17

bonjour à tous,

Je voudrais faire une connexion client/serveur à l'aide des sockets, je programme en PHP. Le client et le serveur disposent de deux bases de données de structures identiques, le client peut faire des modification dans sa base de données, mais dès qu'il se connecte au serveur, la base de données du serveur doit être mise à jour avec les modifications faites par le client.

En gros, ce que je veux faire c'est :

- Le client se connecte au serveur pour publier ses modifications
- Le serveur lui demande de s'authentifier
- Une page d'authentification s'affiche chez le client et les informations sont envoyées au serveur (login+mot de passe)
- Le serveur vérifie l'existence du login et du mot de passe dans sa base de données pour accepter ou refuser le client
- Si le client est accepté, les modifications sont envoyées au serveur

Voilà tout.

J'ai fait un essai de connexion entre le client et le serveur, ça marche quand j'ai essayé sur la même machine mais pas d'un ordinateur distant et comme je n'ai jamais travaillé avec les sockets, je ne sais pas ce que je dois faire.

Est ce que quelqu'un peut m'aider SVP ?

Merci.
Salut,

Tu peux préciser un peu ce que tu entends par client et serveur ?
Définis l'architecture (machines / services) des deux extrémités de la connexion que tu veux mettre en place, stp.


Tracker.