SendNetworkFile dans un thread

Sujets variés concernant le développement en PureBasic
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

SendNetworkFile dans un thread

Message par julien »

Salut @ tous :)

Je me suis attardé sur la source du serveur Web Atomic dans les exemples de la 3.90, et d'après ce que j'ai compris (du code) le serveur ne peux pas envoyer des données à plus d'un client à la fois ?

Par exemple si le serveur envoie un fichier de 50 Mo au client 'P' et que le client 'B' veut se connecter au serveur en même temps, le client 'B' n'aura pas de réponse.

Je dis ça parce qu'il y' marqué dans l'aide que 'SendNetworkFile' stop le programme :

"Lors de l'émission, l'exécution du programme est stoppée jusqu'à ce que le fichier complet ait été envoyé."

La solution serai donc de faire tourner l'envoie des données pour le client dans un thread ?

J'ai essayé cette solution mais ça n'a pas marché (:roll:) ou j'ai du me tromper qq part...!!

Si vous avez une petite solution ou des conseils et bien j'suis preneur (a v'tr bon coeur)

Pendant que j'y suis on parle souvent des failles des serveurs Web, de quel genre de faille s'agit il ? quel sont les erreurs de programmation qui provoque cela ?. Atomic WebServer en contient elle ?
Je dis ça car je veux faire tourner ce serveur sur mon PC, mais bon si c du gruyère... :D
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

ha oui sa peut etre interressant de coder son propre server :) je vais y jeter un oeil, je te tient au courant pour les thread ;)
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

merci quel rapidité :D
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

:P
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

j'ai plus le code mais receivenetworkdata() fonctionne coté client dans un thread, je l'avais fait pour un client FTP
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

et moi je l'avais fait coter server, je sais pas si tu te rapelle oliv, je croit ke c'etait sur la 2eme generation du musé, enfin je vais quand meme regarde sur le muse, sinon je vais le refaire :)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

retrouver :) c'est par ici : ... euh non il fallait prendre la premiere a gauche, c'est par la : http://www.serveurperso.com/~cederavic/ ... 13c522e801
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

est ce prudent d'appeler la fonction ' KillThread(ThID)' ?
Dans l'aide il est marqué que cette fonction est dangereuse (en quoi).
De toute façon la proceedure se termine juste après ? Donc le thread se termine de lui même ?


Procedure SReceiveData(value.b)

Repeat

DataLength = ReceiveNetworkData(ClientID, *Buffer, 2000)

Until DataLength <> 2000

MessageRequester("Server...", "Vous avez ressu un message : " + Eol + PeekS(*Buffer), 0)

KillThread(ThID)

EndProcedure
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

si tu n'apelles pas cette fonction, le thread restera en mémoire pour rien je crois
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

de toute façon, c'est pas top ce truc, j'en ai refait un bocoup mieu, chaque client est traiter de façon permanent jusqu'a ce qu'il ce deconnecter ou que se soit le server qui le deconnecte, voir le code dans truc et astuces(c'est la base, sa peut servir pour pas mal de serveur a mon avis :)
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

ok j'vais voir
Répondre