aide svp network

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

aide svp network

Message 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
++
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message 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
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

rp

Message 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!
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message 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 :oops:
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 :wink:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message 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 :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Oui mais toi tu as fait un peu mieux (le IF) :D
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message 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
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

rp

Message 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
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message 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 :jesors:.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Re: rp

Message 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 :wink: 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 :oops: enfin je te ferais ça si tu veux)
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

rp

Message 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
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Car le projet est d'abord réalisé en Anglais ;).
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message 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 !
Répondre