Page 1 sur 3
aide svp network
Publié : dim. 24/avr./2005 18:15
par Le psychopathe
Voilà je suis en train de faire un serveur en pure basic.
J'ai plusieurs problèmes :
- quand on envoit un fichier le programme se stop, on m'a dit d'utliser un thread mais bon côté client il faut faire la même.
- En plus je voudrais une barre de progréssion donc je pense à découper les fichiers en morceaux et les remettre aprés !
Je galère ! Aidez moi
merci
++
Publié : dim. 24/avr./2005 18:20
par julien
utilise la commande SendNetworkData(ConnectionID, *BufferMemoire, Longueur) et tu envoie en petite quantité ton fichier, ça permet de ne pas bloquer et aussi de faire une barre de progression
rp
Publié : dim. 24/avr./2005 19:59
par Le psychopathe
SendNetworkData(ConnectionID, *BufferMemoire, Longueur)
Oui j'y avais pensé mais je n'ai encore jamais touché à sa avec pure basc et l'aide pour cet exemple est vraiment ...
connectionID cela identifie l'autre en clair
Mais *BufferMemoire j'aurai besoin d'explicationS, ainsi que pour longueur. Avant j'étais sous dark basic ! donc la c'est bon mais il faut m'expliquer!
Publié : dim. 24/avr./2005 20:51
par Oliv
*BufferMemoire represente l'adresse mémoire (souvent appelé adresse buffer) où il y a les données à envoyer et Longueur représente la taille de ce que tu veux envoyer , par exemple : (fait sans tester, il y a peu être des fautes)
Code : Tout sélectionner
*Buffer.l = AllocateMemory(2000) ; *Buffer va contenir l'adresse mémoire
; 2000 représente la taille en octets de l'envoi
Openfile(0,"A_Envoyer.xxx")
ReadData(*Buffer,2000) ; Lit 2000 octets du fichiers en cours donc de A_Envoyer.xxx
SendNetworkData(ConnectionID,*Buffer,2000)
Voilà environ se qu'il faut faire pour envoyer les 2000 premiers octets, je te laisse de référer a la doc si j'ai oublié un commentaire
Sinon va voir sur
www.purearea.net section Codearchiv, il doit bien y avoir des exemples, et profites en pour regarder les thread, ça te sera très utile

Publié : dim. 24/avr./2005 20:54
par comtois
peut-être un truc de ce genre ?
Code : Tout sélectionner
If ReadFile(0, Fichier$)
longueur = Lof()
*Buffer = AllocateMemory( longueur)
LongueurLue = ReadData(*Buffer, longueur)
CloseFile(0)
EndIf
Et ensuite tu compares LongueurLue à Longueur pour vérifier que les datas sont bien dans le buffer.
je n'ai pas testé ,mais c'est une piste à explorer
[EDIT]
Oliv est plus rapide que moi

Publié : dim. 24/avr./2005 22:03
par Oliv
Oui mais toi tu as fait un peu mieux (le IF)

Publié : lun. 25/avr./2005 8:16
par Dr. Dri
Alors premierement, pour envoyer un fichier, je ne vois pas d'autre solution que SendNetworkData (enfin bon j'ai pas l'aide sous les yeux mais de mémoire..)
Donc pour le coup t'es obligé de passer par cette fonction... Pour ne pas stopper le programme je recommande le thread (car il m'a semblé que côté réception, le programme n'est pas interrompu).
Pourquoi je te recommande un thread ? Parce que les appli client-serveur pro font du multithreading, c'est à dire que le serveur crée un thread par client. (Et aussi parce que l'ayant testé, je trouve que ca fonctionne bien ^^)
Si j'ai le temps je te fais un exemple...
Dri
Publié : lun. 25/avr./2005 16:21
par Oliv
Je te conseille aussi les threads

Dr.Dri : il y a aussi la commande SendNetworkFile faite juste pour les fichiers mais elle est très peu pratique au niveau de son contenu
Publié : lun. 25/avr./2005 19:40
par Dr. Dri
oué j'ai vu ca après. mais comme je ne m'en suis jamais servi je ne savais meme pas qu'elle existait lol
Dri
rp
Publié : lun. 25/avr./2005 20:20
par Le psychopathe
Ok DRI, cela serait sympa de me faire un exemple.
Par contre je ne veux pas de send data car avec cette commande on est bloqué pour savoir où le telechargement en est.
Je remercie aussi les autres (olive et comtois)pour leur aide car je trouve la section network trés difficile et l'aide mince.
Pour me contacter :
Le-psychopathe@hotmail.fr
Publié : lun. 25/avr./2005 20:22
par Heis Spiter
T'as juste besoin de suivre le forum, pas besoin de te contacter

. Et puis je me tue à faire de la pub pour Bird Chat, mais tu n'as pas de plus bel exemple. Le transfert de fichier a été fait par Oliv, donc s'il faut taper, c'est lui, pas moi

.
Re: rp
Publié : lun. 25/avr./2005 21:04
par Oliv
Le psychopathe a écrit :Ok DRI, cela serait sympa de me faire un exemple.
Par contre je ne veux pas de send data car avec cette commande on est bloqué pour savoir où le telechargement en est.
Je remercie aussi les autres (olive et comtois)pour leur aide car je trouve la section network trés difficile et l'aide mince.
Pour me contacter :
Le-psychopathe@hotmail.fr
Sans SendData tu n'auras pas de controle de telechargement

Avec cette commande, tu peux très bien faire un controle, par exemple dans le code que je t'ai fait, tu n'envois que 2000 octets par 2000 octets, donc tu peux savoir (à 2000 octets près) combien tu as envoyé. Comtois est plus radical et a recréé une fonction SendNetworkFile()
Tu voulais un affichage du pourcentage envoyé ???? (Fallait le dire

enfin je te ferais ça si tu veux)
rp
Publié : mar. 26/avr./2005 19:36
par Le psychopathe
Ok, si quelqu'un aV un petit exemple bien concret car ce n'est qu'une partie du prog mais la plus importante donc ...
Pour bird chat pourquoi le site est en anglais ??
merci a tous
Publié : mar. 26/avr./2005 19:38
par Heis Spiter
Car le projet est d'abord réalisé en Anglais

.
Publié : mar. 26/avr./2005 19:47
par Le psychopathe
Aussi je compte envoyer par 250000 octet en moyenne mé sa dépendra de la vitesse que je devrais calculer pour envoyer le plus vite possible !