Page 1 sur 1
[R] Problème TCP/IP
Posté : dim. 20 juil. 2014 12:51
par sozary
Bonjour à tous!!
Je suis en train de bricoler un jeu vidéo, avec pour architecture celle mise en fichier joint.
Donc le client cherche à se connecter au serveur si les identifiants entrés dans le client correspondent à ceux dans la base de donnée, et y arrive, le seul soucis, c'est que si je relance mon client, et cherche à me connecter à nouveau, le serveur ne réagis même pas:
Serveur:
► Afficher le texte
Code : Tout sélectionner
#include<Inet.au3>
#include<array.au3>
Global $mainSocket, $IP = @IPAddress1, $port = 9995, $max = 50, $socket, $recv = 1,$nb_perso_connect=0,$persos[11]
TCPStartup()
$mainSocket = TCPListen($IP,$port,$max)
If $mainSocket = -1 Or $mainSocket = 0 Then
MsgBox(16,"Erreur du serveur", "Impossible de communiquer avec le serveur.")
TCPShutdown()
Exit
EndIf
Do
$socket = TCPAccept($mainSocket)
Sleep(10)
Until $socket <> -1
While $recv <> "exit"
$recv = TCPRecv($socket,9999)
If $recv <> "" Then
Local $tempArray
$tempArray = StringSplit($recv,"|")
If Not @error Then
Switch $tempArray[2]
case "3"
$search=_ArraySearch($persos,$tempArray[1])
if @error Then
MsgBox(64,"Test jeu","Nouveau personnage en ligne."&@CRLF&"Son pseudo est "&$tempArray[1]&".")
$persos[$nb_perso_connect]=$tempArray[1]
$nb_perso_connect+=1
MsgBox(64,"Test jeu","Avec vous, cela nous fait "&$nb_perso_connect&" perso(s) connecté(s).")
Else
MsgBox(48,"Test jeu","Personnage déjà connecté")
EndIf
EndSwitch
EndIf
EndIf
Wend
TCPCloseSocket($mainSocket)
TCPShutdown()
Exit
Et pour le client, j'ai:
► Afficher le texte
Code : Tout sélectionner
Func _QueryToServeur($id)
TCPStartup()
$socket = TCPConnect($IP,$port)
If $socket = -1 Or $socket = 0 Then
MsgBox(16,$gamename, "Impossible de se connecter au serveur!")
TCPShutdown()
Exit
EndIf
local $toSend=$id&"|3";on envois au serveur l'id du perso connecté, et le délimiteur | délimite le pseudo de l'action. Ici 3 est l'action de connexion
TCPSend($socket,$toSend)
MsgBox(64,$gamename,"Vous vous êtes connecté avec succès!")
TCPCloseSocket($socket)
TCPShutdown()
sleep(500)
Exit
EndFunc
Merci d'avance!!
Re: [...] Problème TCP/IP
Posté : dim. 20 juil. 2014 15:23
par PandiPanda
Bonjour,
de ce que j'ai lu dans ton serveur, tu attend de recevoir le message "exit" pour quitter la boucle.
Le problème c'est que type de serveur sera adéquat pour un mono client, non pour multi client étant donné qu'il quitte une fois qu'un client envoi le message "exit".
Re: [...] Problème TCP/IP
Posté : dim. 20 juil. 2014 17:01
par sozary
Ah, euh oui en effet.. J'ai suivis le tutoriel sur le forum, mais il ne précisait pas comment faire avec plusieurs client. Comment pourrai-je procéder?
Re: [...] Problème TCP/IP
Posté : lun. 21 juil. 2014 10:15
par PandiPanda
Bonjour,
quelque lien
-
ici
-
ici
-
ici
- autre ...
une recherche dans ce forum ou le "us" et vous devrez y trouver votre bonheur.
Re: [...] Problème TCP/IP
Posté : mar. 22 juil. 2014 10:00
par sozary
Oh joie, j'avais oublié nos amis anglophones!!! Merci!