DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008
-
5 juin 2004 à 01:47
psycho69
Messages postés21Date d'inscriptionmardi 10 décembre 2002StatutMembreDernière intervention30 octobre 2007
-
24 oct. 2005 à 23:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Si tu traduis en Français ça te dit que tu ne peux pas décharger les contrôles créés lors de la phase de "design".
En gros tu essaies de décharger le Winsock alors qu'il est présent sur la form en tant que composant. Enlèce cette ligne ou alors passe par une référence plutôt qu'un objet.
psycho69
Messages postés21Date d'inscriptionmardi 10 décembre 2002StatutMembreDernière intervention30 octobre 2007 24 oct. 2005 à 16:10
Salut très belle source
Mais j'ai une erreur que j'aimerais bien corriger si quelqu'un pouvais m'aider
Donc voila des que j'ouvre ma page Web le serveur bug
runtime error 362
can't unload controls created at design time
et en debug
Voila la ligne fautive
Unload Ws(connection_a_suprimer)
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 7 juin 2004 à 19:27
je vien de "resoudre" le probleme... regardez le timer boost... c'est pas joli mais ca marche... enfin voila quoi si quelqu'un peut me dire pourquoi le serveur deconne et surtout comment faire pour qu'il soit stable je le remercierai...
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 7 juin 2004 à 15:19
maintenant, la nouvelle vrsion de mon code est sur vbfrance...
un print screen du moment ou se situe l'erreur est inclu dans l'appercu..
comme on peut le voir, l'envois du fichier 5a.jpg par le ws(1) se gele juste au moment ou le ws(2) se connecte.. bizarre non? et bien ca fait des heure que je suis penché sur le probleme et je ne trouve toujours pas... c'est pourquoi je fait appel a des pro ... vous quoi (bhaaaaa le leche cul direz vous ;-) ).
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 7 juin 2004 à 15:13
http://zinzin.no-ip.org/sources.zip ma noucelle source... g essayé de la mofifier sur vb france mais le serveur affiche un message d'erreur... booooooo
enfin soit quoi qu'il en soit l'url ci dessus est ébergée par mon serveur web... mais il foire :( en fait il y a un probleme lorsqu'il y a plusieur image sur une page, y en a au moin une qui plante et qui n'arrive jamais.. pourquoi... je me le demande! si un de vous saurais me dire ou est mon erreur je lui dis chapô (avec un chapeau sur le o)
ps: le fivhier est sur mon pc... ce qui veut dire qu'il se peut que mon pc soit eteint lol... mais je v essayer de le laisser alumé pour qu'on m'aide. merci d'avance a vous tous.
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 7 juin 2004 à 10:27
Je peux pas trop voir ce bug justement, mais je pense que sa vient plutot du navigateur qui consomme pour ouvrir une page.
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 7 juin 2004 à 09:55
comme le code est la ...non lol (etrangement) sinon je retravaille ma source... mais j'ai un bug pour le moment. j'essaye de le resoudre et au cas ou je l'envois ici en demandant conseil car je cale grave.
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 7 juin 2004 à 08:10
J'ai vaguement regardé ton code, mais vu que utilise WS, tu n'es pas limité pour la taille de la page ?! Car WS a une certaine limite pour la taille des packets ...
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 6 juin 2004 à 10:17
merci bcp, ledev ! Encore une fois...
ledev
Messages postés9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 juin 2004 6 juin 2004 à 00:00
Scalpweb:
Pour ce qui est des nouveautées, tu peu passer par une page asp(ou php si t'es héberger chez une hebergeur gratuit). Ainsi une base de donnée d'où t'extrait tes nouveautés et le tour est jouer.
Pour le chat, il te faudra je pense crée un controle activeX que tu pourra mettre dans tes pages. Mais faudra égualement programmer un serveur et trouvée une machine pour l'héberger(doit être connectez en permanence à internet). Le mieux serrai de passer par de l'irc, tu utilise l'un des serveurs qui permet de crée sa salle, et tu met un applet java de chat, et le tour est joué.
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 5 juin 2004 à 23:23
tu a raison scalpweb, vb s'en occupe.
je vien de faire le test avec
FNbr = FreeFile
Open "E:\test.txt" For Binary As FNbr
Do While Not EOF(FNbr)
Ch$ = Input$(30, FNbr)
Text1 = Text1 & Ch$ & vbCrLf
'data = Ch$
Loop
Close FNbr
sur un txt d'une ligne de 83 caractere
je me retrouve avec un textbox avec 3 lignes
2 de 30 caractere
et une de 23 caractere
on peut donc en conclure que lorsqu'il ne reste plus assez d'octet a lire, vb ne lit pas plus loin... moi qui pensais que c'etait con un pc :-)
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 5 juin 2004 à 21:45
Ok, merci pour ta réponse rapide. En fait, moi, jaimerais programmer une application un peu comme msnMessenger pour mon site, mais je ne sais pas si je peux me permettre de le programmer en vb... C'est à la fois un programme de discussions, et qui permet de savoir les nouveautés sur le site. Si mon site deviens populaires (quand jaurais terminé le logiciel qui va avec) il devrait y avoir pas mal de connexions, dc je sais pas...
Qu'en penses-tu ?
ledev
Messages postés9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 juin 2004 5 juin 2004 à 21:37
misterzinzin:
Si il ne s'en occupe pas(mais il me semble, comme la dit scalpweb, qu'ils s'en occupe), tu place un if. Si lof(file)>1024 tu lis les 1024 suivant, sinon les octets restant.
Scalpweb:
Il doit y avoir une limite vue que les connections on un ID, et qu'il n'y a pas un nombre illimité d'ID, mais à mon avis avant de l'atteindre, t'a de quoi saturer un max t'a connexion... . Mais Winsock ne tiendra pas 100 000 connections s'en s'emmeler les pincaux et bouffers une ram et un processeur monstreux...
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 5 juin 2004 à 21:25
Moi, je voudrais savoir autre chose : peut-on avoir un nombre de connexion illimité sur des winsock avec un index différent ? N'y a t-il pas une limite (je parle une limite pourla carte réseau ou le modem) ? Merci de me répondre,
scalpweb
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 5 juin 2004 à 21:20
Ben, perso, jai pas eue de pbm, donc soit jai eue une chance énorme, soit vb s'en occupe. Note que j'avais placé un "On error resume next" dans mon code, mais que le fichier est arriver complet... Donc, à mon avis, vb s'en occupe.
De toutes façons, dans le cas contraire, les lignes à rajouter ne seraient pas très compliquées....
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 5 juin 2004 à 21:11
bete question avec la methode result=input(file,xyz)
qu'arrive-til si, a la fin du fichier, on veut lire trop d'octet ??? je veux dire par la qu'on va forcement depaser le fichier... il faut donc une variable qui nous indique ou on est dans la lecture du fichier pour savoir (via lof) combien d'octet il nous reste a lire...
a moi que vb ne s'en occupe mais bon je suis ceptique
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 5 juin 2004 à 20:42
C'est très bien, si c'est ton premier serveur !
Moi, j'avais commencer un serveur PHP, et j'ai fait un peu comme ledev : je me suis perdu dans mon code, et j'ai tout abandonner... Mais bon, si DeadlyPredator veut de mon aide, il n'y a pas de problème pour que je m'y remette...
ledev
Messages postés9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 juin 2004 5 juin 2004 à 16:44
En faite, pour lire qu'un morceau de fichier, il te faut remplacer:
result=input(file,lof(file))
par!
result=input(file,xyz)
avec xyz le nombre d'octet que tu veu lire.
Ainsi, la premiére fois, il lira les xyz premiers octets, puis la seconde fois les xyz suivant.
Là j'ai pas vb sous la main, mais des que je met la main dessus je te fais un exemple.
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 5 juin 2004 à 15:46
ok en gros je lis un bout de fichier (qq pourrais renseigner sur la taille a adopter)
je l'envois
quand il est envoyé j'envois un autre morceau
jusqu'a ce que ca soit fini...
faudra que je gere ca
car c vrai que je vien de tester avec un fichier de 30mo et ben... je l'ai jamais recu lol (imposible de le stocker dans une variable)
ledev
Messages postés9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 juin 2004 5 juin 2004 à 14:50
Un truc qui rssemble à ça(à adapter, ça fait longtemps que j'ai pas fait de vb:):
dim x as integer=freefile, data as string
Open monfic for binary as x
data=space$(1024)
do while not eof(x)
get #x,data
sock.send data
loop
close x
data=""
Il faut biensur l'adapter, il me semble qu'il faut attendre que l'envoie soit terminée pour envoyée la suite, mais je me souviens plus comment(il va falloir utilisée une propriété ou un évènement).
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 5 juin 2004 à 10:25
ben ce qu'il me plairais c'est qu'on me donne une methode pour ne pas ouvrir tout le fichier et l'envoyer par petit morceau ca serais chouette ca...
une source comme exemple ?
le code commenté ?
désolé mais je suis un débutant et je n'ai jamais lu autre chose que ce qu'il y a sur ce site. en tout cas merci de la reponse rapide
ledev
Messages postés9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 juin 2004 5 juin 2004 à 07:22
Pour DeadlyPredator:
J'avais fait un assez gros serveur en vb. Il faisait:
-Serveur SMTP(il pouvait faire un simple relay, et/ou mettre les E-mails sur les comptes POP)
-Serveur POP
-Serveur HTTP(il gérai du HTTP/1.0, mais il le gérait de maniére assez complexe)
->Exploration des dossiers(génerai des pages web avec le contenue du dossier)
->Gérai plusieurs sites(par le host)
->Avais des tas d'options(deux rangé d'onglet)
-les pages serveurs: c'était des pages programmez sous forme de dll/exe activex.
-Les scripts serveur, ça ressemblais à l'asp, mais un peu différent(lles nom des objets était en français, et les balises d'ouverture/fermeture de code était différente). Tellement proche de l'asp que je l'avais adaptez pour qu'il execute les pages asp(mais il les gérai pas toujours tres bien, enfin fallais pas qu'elle soit trop poussez).
-Des serveurs de service(des sortes de WebService), qui pouvais être programmez en VBScript, ou sous une DLL/EXE ActiveX(dans ce cas il se contentait de "mapper" le résultat vers le client, qui pouvais être une page de script local, d'un autre serveur, ou une appli que passe pas la DLL cliente).
-Un editeur de script serveur, il faisais même la coloration du html et du code ;).
Enfin, bref, ça a été plus d'un ans de travail acharner, pour:
-Quand on le lançai, il prenait 200Mo de ram et 10% du processeur quand aucune requête ne venai(proc. 1ghz)
-Comme je n'avais rien orguanisé(pas de commentaire, incohérence de partout dans le code), je me suis perdu dans mon propre code, et je n'arrivais plus à le faire évoluer.
-Et pour finir le tous, je l'ai perdu en formatant mon disque(j'avais pas fait de sauveguarde).
Enfin tous ça pour dire, pour faire un gros serveur web, vaus mieu prendre autre chose que vb. Mais si tu veus un cout de main, je veu bien remettrent les mains dans le combouis ;).
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 5 juin 2004 à 05:59
c'est sûrement qu'en tant qu'objet, VB rajoute des propriétés (index,tag,name,...) alors que dans le code, c'est des variables. Par contre, c'est un peu plus complexe quand on utilise winsock seulement en tant que référence mais ça donne de bon résultats.
Question pour DeadlyPredator :
Quand tu instancie un objet winsock en passant par les références, c'est moins gourmant que si on "place" un objet winsock tel quel sur les feuilles vb ?
Saurais-tu me dire pourquoi ?
Merci !
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 5 juin 2004 à 01:47
Le maître de HTTP va parler :
Premièrement, je crois que ton prog lit tout le fichier et le met dans une variable donc c'est pour ça qu'il y a une grosse consomation. J'ai fait un lecteur turbo parfait pour ça. Il lit une section, l'envoie, en lit une autre et l'envoie...
Deuxièmement, tu gères très très peu le protocole HTTP. Puis, il n'est pas assez complet, personalisable pour un serveur HTTP Vb. Il ne gère que Get.
Troisièmement, pour le booster, créé des instances d'une classe pour chaques client en utilisant winsock comme référence plutôt qu'en tant qu'objet.
Je ne note jamais car, ici on partage et s'entraide.
J'aurais bien besoins d'aide pour un gros serveur HTTP. UN BIG. Mais seul, c'est long donc considère ça comme une invitation.
p.s. moi aussi j'ai du commencer quelque pars donc c'es normal que ton serveur est pas parfait. J'ai aie créer 2 autres après, beaucoup mieux.
24 oct. 2005 à 23:22
comment passe een referance je voie pas se que tu veu dire?
24 oct. 2005 à 19:29
En gros tu essaies de décharger le Winsock alors qu'il est présent sur la form en tant que composant. Enlèce cette ligne ou alors passe par une référence plutôt qu'un objet.
24 oct. 2005 à 16:10
Mais j'ai une erreur que j'aimerais bien corriger si quelqu'un pouvais m'aider
Donc voila des que j'ouvre ma page Web le serveur bug
runtime error 362
can't unload controls created at design time
et en debug
Voila la ligne fautive
Unload Ws(connection_a_suprimer)
7 juin 2004 à 19:27
7 juin 2004 à 15:19
un print screen du moment ou se situe l'erreur est inclu dans l'appercu..
comme on peut le voir, l'envois du fichier 5a.jpg par le ws(1) se gele juste au moment ou le ws(2) se connecte.. bizarre non? et bien ca fait des heure que je suis penché sur le probleme et je ne trouve toujours pas... c'est pourquoi je fait appel a des pro ... vous quoi (bhaaaaa le leche cul direz vous ;-) ).
7 juin 2004 à 15:13
ma noucelle source... g essayé de la mofifier sur vb france mais le serveur affiche un message d'erreur... booooooo
enfin soit quoi qu'il en soit l'url ci dessus est ébergée par mon serveur web... mais il foire :( en fait il y a un probleme lorsqu'il y a plusieur image sur une page, y en a au moin une qui plante et qui n'arrive jamais.. pourquoi... je me le demande! si un de vous saurais me dire ou est mon erreur je lui dis chapô (avec un chapeau sur le o)
ps: le fivhier est sur mon pc... ce qui veut dire qu'il se peut que mon pc soit eteint lol... mais je v essayer de le laisser alumé pour qu'on m'aide. merci d'avance a vous tous.
7 juin 2004 à 10:27
7 juin 2004 à 09:55
7 juin 2004 à 08:10
6 juin 2004 à 10:17
6 juin 2004 à 00:00
Pour ce qui est des nouveautées, tu peu passer par une page asp(ou php si t'es héberger chez une hebergeur gratuit). Ainsi une base de donnée d'où t'extrait tes nouveautés et le tour est jouer.
Pour le chat, il te faudra je pense crée un controle activeX que tu pourra mettre dans tes pages. Mais faudra égualement programmer un serveur et trouvée une machine pour l'héberger(doit être connectez en permanence à internet). Le mieux serrai de passer par de l'irc, tu utilise l'un des serveurs qui permet de crée sa salle, et tu met un applet java de chat, et le tour est joué.
5 juin 2004 à 23:23
je vien de faire le test avec
FNbr = FreeFile
Open "E:\test.txt" For Binary As FNbr
Do While Not EOF(FNbr)
Ch$ = Input$(30, FNbr)
Text1 = Text1 & Ch$ & vbCrLf
'data = Ch$
Loop
Close FNbr
sur un txt d'une ligne de 83 caractere
je me retrouve avec un textbox avec 3 lignes
2 de 30 caractere
et une de 23 caractere
on peut donc en conclure que lorsqu'il ne reste plus assez d'octet a lire, vb ne lit pas plus loin... moi qui pensais que c'etait con un pc :-)
5 juin 2004 à 21:45
Qu'en penses-tu ?
5 juin 2004 à 21:37
Si il ne s'en occupe pas(mais il me semble, comme la dit scalpweb, qu'ils s'en occupe), tu place un if. Si lof(file)>1024 tu lis les 1024 suivant, sinon les octets restant.
Scalpweb:
Il doit y avoir une limite vue que les connections on un ID, et qu'il n'y a pas un nombre illimité d'ID, mais à mon avis avant de l'atteindre, t'a de quoi saturer un max t'a connexion... . Mais Winsock ne tiendra pas 100 000 connections s'en s'emmeler les pincaux et bouffers une ram et un processeur monstreux...
5 juin 2004 à 21:25
scalpweb
5 juin 2004 à 21:20
De toutes façons, dans le cas contraire, les lignes à rajouter ne seraient pas très compliquées....
5 juin 2004 à 21:11
qu'arrive-til si, a la fin du fichier, on veut lire trop d'octet ??? je veux dire par la qu'on va forcement depaser le fichier... il faut donc une variable qui nous indique ou on est dans la lecture du fichier pour savoir (via lof) combien d'octet il nous reste a lire...
a moi que vb ne s'en occupe mais bon je suis ceptique
5 juin 2004 à 20:42
Moi, j'avais commencer un serveur PHP, et j'ai fait un peu comme ledev : je me suis perdu dans mon code, et j'ai tout abandonner... Mais bon, si DeadlyPredator veut de mon aide, il n'y a pas de problème pour que je m'y remette...
5 juin 2004 à 16:44
result=input(file,lof(file))
par!
result=input(file,xyz)
avec xyz le nombre d'octet que tu veu lire.
Ainsi, la premiére fois, il lira les xyz premiers octets, puis la seconde fois les xyz suivant.
Là j'ai pas vb sous la main, mais des que je met la main dessus je te fais un exemple.
5 juin 2004 à 15:46
je l'envois
quand il est envoyé j'envois un autre morceau
jusqu'a ce que ca soit fini...
faudra que je gere ca
car c vrai que je vien de tester avec un fichier de 30mo et ben... je l'ai jamais recu lol (imposible de le stocker dans une variable)
5 juin 2004 à 14:50
dim x as integer=freefile, data as string
Open monfic for binary as x
data=space$(1024)
do while not eof(x)
get #x,data
sock.send data
loop
close x
data=""
Il faut biensur l'adapter, il me semble qu'il faut attendre que l'envoie soit terminée pour envoyée la suite, mais je me souviens plus comment(il va falloir utilisée une propriété ou un évènement).
5 juin 2004 à 10:25
une source comme exemple ?
le code commenté ?
désolé mais je suis un débutant et je n'ai jamais lu autre chose que ce qu'il y a sur ce site. en tout cas merci de la reponse rapide
5 juin 2004 à 07:22
J'avais fait un assez gros serveur en vb. Il faisait:
-Serveur SMTP(il pouvait faire un simple relay, et/ou mettre les E-mails sur les comptes POP)
-Serveur POP
-Serveur HTTP(il gérai du HTTP/1.0, mais il le gérait de maniére assez complexe)
->Exploration des dossiers(génerai des pages web avec le contenue du dossier)
->Gérai plusieurs sites(par le host)
->Avais des tas d'options(deux rangé d'onglet)
-les pages serveurs: c'était des pages programmez sous forme de dll/exe activex.
-Les scripts serveur, ça ressemblais à l'asp, mais un peu différent(lles nom des objets était en français, et les balises d'ouverture/fermeture de code était différente). Tellement proche de l'asp que je l'avais adaptez pour qu'il execute les pages asp(mais il les gérai pas toujours tres bien, enfin fallais pas qu'elle soit trop poussez).
-Des serveurs de service(des sortes de WebService), qui pouvais être programmez en VBScript, ou sous une DLL/EXE ActiveX(dans ce cas il se contentait de "mapper" le résultat vers le client, qui pouvais être une page de script local, d'un autre serveur, ou une appli que passe pas la DLL cliente).
-Un editeur de script serveur, il faisais même la coloration du html et du code ;).
Enfin, bref, ça a été plus d'un ans de travail acharner, pour:
-Quand on le lançai, il prenait 200Mo de ram et 10% du processeur quand aucune requête ne venai(proc. 1ghz)
-Comme je n'avais rien orguanisé(pas de commentaire, incohérence de partout dans le code), je me suis perdu dans mon propre code, et je n'arrivais plus à le faire évoluer.
-Et pour finir le tous, je l'ai perdu en formatant mon disque(j'avais pas fait de sauveguarde).
Enfin tous ça pour dire, pour faire un gros serveur web, vaus mieu prendre autre chose que vb. Mais si tu veus un cout de main, je veu bien remettrent les mains dans le combouis ;).
5 juin 2004 à 05:59
5 juin 2004 à 02:24
Quand tu instancie un objet winsock en passant par les références, c'est moins gourmant que si on "place" un objet winsock tel quel sur les feuilles vb ?
Saurais-tu me dire pourquoi ?
Merci !
5 juin 2004 à 01:47
Premièrement, je crois que ton prog lit tout le fichier et le met dans une variable donc c'est pour ça qu'il y a une grosse consomation. J'ai fait un lecteur turbo parfait pour ça. Il lit une section, l'envoie, en lit une autre et l'envoie...
Deuxièmement, tu gères très très peu le protocole HTTP. Puis, il n'est pas assez complet, personalisable pour un serveur HTTP Vb. Il ne gère que Get.
Troisièmement, pour le booster, créé des instances d'une classe pour chaques client en utilisant winsock comme référence plutôt qu'en tant qu'objet.
Je ne note jamais car, ici on partage et s'entraide.
J'aurais bien besoins d'aide pour un gros serveur HTTP. UN BIG. Mais seul, c'est long donc considère ça comme une invitation.
p.s. moi aussi j'ai du commencer quelque pars donc c'es normal que ton serveur est pas parfait. J'ai aie créer 2 autres après, beaucoup mieux.