Plusieurs serveurs dans la meme appli

Programmation d'applications complexes
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Plusieurs serveurs dans la meme appli

Message par Twix »

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

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
Et le client

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...
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
Twix : au secours, vlà les bugs qu'arrivents !!
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Message par case »

non je n'y arrive pas ...
etrange


le plus etrange c'est que j'ai modifier les programmes

coté serveurs

Code : Tout sélectionner

InitNetwork()

; buffer pour recevoir les donées
*buffer=AllocateMemory(500)

; création des serveurs
CreateNetworkServer(1,230)
CreateNetworkServer(2,80)
; boucle principale
Repeat
	Select NetworkServerEvent()
	Case 0
	Case #PB_NetworkEvent_Connect 
		Debug "connexion client"
		Debug EventServer()
	Case #PB_NetworkEvent_Data
		Debug "data"
		Debug EventServer()
	    client=EventClient()
   		ReceiveNetworkData(client,*buffer,500) 
	Case #PB_NetworkEvent_File
		Debug "file"
	Case #PB_NetworkEvent_Disconnect
		Debug "déconnexion "
		Debug EventServer()
	EndSelect
Delay(50)
ForEver 
coté client

Code : Tout sélectionner

InitNetwork()

; on se connecte aux deux serveurs
id1=OpenNetworkConnection("127.0.0.1",230)
SendNetworkString(id1,"Are you working ?")
CloseNetworkConnection(id1)
Delay(500)
id2=OpenNetworkConnection("127.0.0.1",80)
SendNetworkString(id2,"No, I'm not")
CloseNetworkConnection(id2)
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...



j'obtiens
connexion client
1
data
1
déconnexion
1
connection client
2
donc du coté serveur il y a bien deux serveurs qui tournent
il accepte la connexion sur le serveur 1, reçois les données sur le serveur 1 vois la fin de la connexion sur le serveur 1

détecte la connexion sur le serveur 2

puis plus rien !!!
bref il y a semble t-il un souci du coté de pure basic
Dernière modification par case le dim. 06/janv./2008 13:49, modifié 2 fois.
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

faut peut etre classer ça dans les bugs alors...
jsui encore dans la version 4.10, j'ai pa tenté ac la beta 4.2 mai ça doi etre pareil, ya pa de modifs dans la lib de network à ce que j'ai vu...
Twix : au secours, vlà les bugs qu'arrivents !!
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Message par case »

problème déjà remonté sur le forum anglais

http://www.purebasic.fr/english/viewtopic.php?t=29699
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message par Twix »

ok merci bcp case
j'espere keu ça sera corrigé...

bonne année a tous ceux qui lisent ce topic :D
Twix : au secours, vlà les bugs qu'arrivents !!
Répondre