Plusieurs serveurs dans la meme appli
Publié : dim. 06/janv./2008 12:06
Salut,
J'aimerai beaucoup pouvoir ouvrir plusieurs serveurs (sur des ports differents) dans le meme programme (en purebasic, evidemment) mais je n'y arrive pas. Je sui donc sorti de mon application et j'ai fai un test pour vraiment savoir ce qui ne marche pas.
J'ai codé deux programmes, 1 qui créé deux serveurs et attend les evenement, l'otre qui se connecte aux deux serveurs a la fois et lui envoi des messages. apparement le clien arrive a se connecter aux deux serveurs et le serveur s'en rend compte, mais un seul des deux serveurs arrive à recevoir des données.
Voila le code source serveur
Et le client
Est-ce que chez vous vous arriver à recevoir les données sur les deux serveurs ??
Sinon, qu'est-ce qui qui ferai que ce code ne fonctionne pas ?
J'ai essayé aussi pare-feu éteint, ça ne marche pa mieu.
Note : ça n'a aucun rapport vu que cela reste en local, mai j'ai une livebox...au ca ou
Merci d'avance pour vos réponses, car ce truc me bloque
J'aimerai beaucoup pouvoir ouvrir plusieurs serveurs (sur des ports differents) dans le meme programme (en purebasic, evidemment) mais je n'y arrive pas. Je sui donc sorti de mon application et j'ai fai un test pour vraiment savoir ce qui ne marche pas.
J'ai codé deux programmes, 1 qui créé deux serveurs et attend les evenement, l'otre qui se connecte aux deux serveurs a la fois et lui envoi des messages. apparement le clien arrive a se connecter aux deux serveurs et le serveur s'en rend compte, mais un seul des deux serveurs arrive à recevoir des données.
Voila le code source serveur
Code : Tout sélectionner
; compilez d'abord ce code avec le debbugger activé
; pui compilez le client (et non pa l'inverse...)
InitNetwork()
; buffer pour recevoir les donées
*buffer=AllocateMemory(500)
; création des serveurs
CreateNetworkServer(1,23)
CreateNetworkServer(2,80)
; boucle principale
Repeat
; test evenements
nse=NetworkServerEvent()
If nse<>0
; keskicepasse ?
Debug nse
Debug EventServer()
; si c des données, on doi les recevoir sinon purebasic continue a dire qu'il y des données en attente (logique)
If nse=2
client=EventClient()
ReceiveNetworkData(client,*buffer,500)
EndIf
; on apelle le debugger pour faire le point et pour que ça n'aille pa trop vite...
CallDebugger
nse=0
EndIf
; delay CPU
Delay(50)
ForEver
Code : Tout sélectionner
InitNetwork()
; on se connecte aux deux serveurs
id1=OpenNetworkConnection("localhost",23)
id2=OpenNetworkConnection("localhost",80)
; ça marche ?
Debug id1
Debug id2
; on envoi des données
SendNetworkString(id1,"Are you working ?")
SendNetworkString(id2,"No, I'm not")
Delay(500) ; on attend avant de fermer car les connexions se ferment avec le programme et le serveur pourrai ne pas
; recevoir le dernier packet de données si la connexion se ferme avant...
Sinon, qu'est-ce qui qui ferai que ce code ne fonctionne pas ?
J'ai essayé aussi pare-feu éteint, ça ne marche pa mieu.
Note : ça n'a aucun rapport vu que cela reste en local, mai j'ai une livebox...au ca ou
Merci d'avance pour vos réponses, car ce truc me bloque