Bonjour,
J'ai un petit problème pour créer le socket qui servira a faire un chat multi salon
Pouvez-vous m'expliquer les étapes a suivre pour le créer ?
Version imprimable
Bonjour,
J'ai un petit problème pour créer le socket qui servira a faire un chat multi salon
Pouvez-vous m'expliquer les étapes a suivre pour le créer ?
C'est un sujet très vaste !
Est ce que tu pourrais préciser les besoins de ton chat (nombre de connectés, cryptage, chatrooms, .... etc) ?
Et c'est quoi ton problème au juste ?
Le problème c'est que je n'arrive pas a créer le serveur
en gros je ne vois pas comment le faire marcher
Je créer un fichier script.php je met
mais je suis bloquer iciCode:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <?php $mainsock = socket_create(AF_INET, SOCK_STREAM, 0); socket_set_option($mainsock, SOL_SOCKET,SO_REUSEADDR, 1); socket_bind($mainsock, "127.0.0.1", 22222) or die('Could not bind to address'); socket_listen($mainsock); /////////////////// $clients=Array(); $compteur=0; echo("En attente d'un client !\n"); while(true){ $toread=Array(); array_push($toread,$mainsock); for ($i=0;$i<count($clients);$i++){ // pour tous les clients array_push($toread,$clients[$i]["SOCKET"]); } socket_select($toread,$a=null,$a=null,$a=null); if(in_array($mainsock, $toread)){// le mainsock est dans le tableau $toread. // c'est notre mainsock donc un nouveau client $sock=socket_accept($mainsock); $compteur++; $nb=count($clients); $clients[$nb]["SOCKET"]=$sock; $clients[$nb]["UID"]=$compteur; socket_write($sock,"Le serveur vous dit bonjour :-). Vous etes le numero :".$compteur.chr(10).chr(13)); sendToAll($clients[$nb]["UID"],chr(10).chr(13)."Arrivée du client ".$clients[$nb]["UID"].chr(10).chr(13)); echo("Arrivée d'un nouveau client !\n"); }else{ // c'est un client qui dit quelque chose for ($i=0;$i<count($clients);$i++){ // on cherche le client if(in_array($clients[$i]["SOCKET"], $toread)) { // celui la est dans le tableau toread $input = socket_read($clients[$i]["SOCKET"], 1024); if($input==null){ /// deconnection du client ! for ($j=0;$j<count($clients);$j++){ // on le cherche dans le tableau if($clients[$j]==$clients[$i]){ // trouvé sendToAll($clients[$i]["UID"],chr(10).chr(13)."Deconnection du client ".$clients[$j]["UID"].chr(10).chr(13)); echo("Deconnection du client ".$clients[$j]["UID"]."\n"); array_splice($clients,$j,1); // on le retire du tableau $i--; } } }else{ /// c'est un message du client qu'il faut traiter. sendToAll($clients[$i]["UID"],$input); } } } } } function sendToAll($sauf,$msg){ global $clients; for($i=0;$i<count($clients);$i++){ // pour tous les clients sauf celui qui envoie if($sauf!=$clients[$i]["UID"]){ socket_write($clients[$i]["SOCKET"],$msg); } } } php?>
Il ya un forum php pour les questions de php je crois ?
Rien à voir avec du C.