SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 14 sept. 2006 à 18:49
c'est quoi ton message d'erreur ?
SOAD08
Messages postés1Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention14 septembre 2006 14 sept. 2006 à 18:13
Je dois etre le seul a avoir des problemes.... j'ai une magnifique linker error quelqu'un sait d'ou ça peut venir?
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 24 juin 2006 à 12:52
Salut, d'abord bravo pour cette classe, c'est effectivement un jeu d 'enfant avec elle mais j'aurais 2 petites questions.
Est qu'on est sur que l'autre personne a bien recu les messages envoyés ou il vaut mieux que le client reponde au serveur qu'il a bien recu les commandes ? En fait je l'utilise dans un jeu en reseau et le serveur envoi des infos au client et tant que le client ne recoit pas ces infos il bloque, si les données se perdent c'est foutu (en UDP par exemple le serveur envoi des paquets mais se fout de savoir si ils sont recus).
Pour "nettoyer" les connections est ce que sockclose suffit ? En fait je lance l'appli en mode serveur puis 5 min apres je la relance en mode client sans rien redemarrer juste en faisant un sockclose puis de nouveau SockPrinc = CreateProSocket(ServerProc);
Hades53
Messages postés231Date d'inscriptionmercredi 12 février 2003StatutMembreDernière intervention 7 juillet 2009 27 juin 2005 à 01:13
Vraiment très très bien !
Effectivement, ça rend les socket beaucoup plus simples :)
10/10
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 31 mai 2005 à 08:26
salut,
dsl de répondre 10ans apres.
si tu veux faire un truc pareil, faut que tu connaisses precisement le protocole utilisé par un vpn (qui se base peut etre aussi en partie sur des sockets udp tiens)
A mon avis c'est pas évident, mais c'est en tout cas pas le sujet de cette source, meme si elle peut te simplifier legerement les choses qd tu en seras a la partie purement socket...
CptLuthor
Messages postés25Date d'inscriptiondimanche 7 novembre 2004StatutMembreDernière intervention 9 décembre 2004 8 nov. 2004 à 15:52
salut
Moi je voudrai réaliser un client et un server VPN le plus simple possible, c a d je lance le server (un .exe tout petit) , mes pots lancent chacun le client ( un .exe tout petit ) et hop on est connecté à distance et on se voit sur le réseau.
je précise je ne ve pas de service de messagerie, c a d je ve juste quon se voi en reseau comme ca on se voit dans les jeux comme si on été en reseau local.
voila merci à ce qui pourront maider
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 25 avril 2004 à 13:19
il suffit de ne pas fermer le socket qui ecoute au moment ou quelqu'un se conecte (mais d'incrémenter un compteur qui est une variable globale par exemple).
tu mets ca au début du code du serveur en remplacement de 'ProSock SAccept = CreateProSocket(ServerProc);'
case ON_SOCKLISTEN:
{
printf("Un client est arrive\n");
if (compteur == 1)
s->SockAccept(&SAccept1);
else if (compteur == 2)
s->SockAccept(&SAccept2);
if (compteur == 3)
s->SockAccept(&SAccept3);
compteur++;
// On peut choisir ou nom de fermer une fois que quelqu'un s'est connecté
// s->SockClose(); on ne le ferme plus...
break;
}
il faut encore adapter le code pour que quand un client se déconecte, on décremente compteur, et qu'on puisse a nouveau utiliser le bon SAccept. Mais bon ca ce n'est plus tellement de l'utilisation de la classe, c'est de la prog plus générale....
voir aussi la remarque sur la maniere de créer un tableau de prosocket. possibilité également d'utiliser le champ State de la classe, pour voir si un proSocket est toujours en train d'etre utilisé. (a vous de le changer aux bons moments)
a++ ;p
cs_lepins
Messages postés2Date d'inscriptionlundi 19 avril 2004StatutMembreDernière intervention21 avril 2004 19 avril 2004 à 17:45
Bonjour tout le monde,
je suis etudiant et j'aimerai travailler sur ce code mais seulement je n'arrive pas à le modifier pour pouvoir utiliser plusieurs clients.
En fait, je ne sais pas comment faire car les classes c'est un mystère pour moi.
En effet, je voudrais pouvoir avoir un serveur et deux ou trois clients.
Donc si quelqu'un pourrait m'aider cela serait sympa.
Merci
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 20 févr. 2004 à 12:29
en+ la c'et l'exemple du serveur ou client telnet ou tu dis ca, c'est pas ce qui a ds la classe... tout ce qui est c marche encore en c++, l'inverse est faux. la c'est une classe, donc de toutes manieres ca tient pas en c pur... voila !! :p pour autant est ce qu'on doit rien utiliser des anciennes librairies du c ? chacun fait comme il veut...
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 20 févr. 2004 à 12:24
et ? jvois pas trop ou est l'problème... une classe sur les sockets de toutes maniere, a partir du moment ou classe c'est du c++ et que les sockets c'est du c bon...
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 20 févr. 2004 à 01:52
un autre bémol => c'est un mélange complet entre le C et le C++ :p
s->SockAccept(&SAccept); => c'est du C++
strcmp(chaine,"exit") => c'est du C (en C++ on utilise les std::string
printf("Un client est arrive\n"); => c'est du C (std::cout << "Un client est arrive\n"; en c++)
etc ...
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 18 févr. 2004 à 23:30
ué ca marche ke sur windows pour une raison : jsais pas trop comment on fait des thread et des events sur unix. meme si c'est pas compliké, vu kjpeu pas tester... voila koi ! :p
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 18 févr. 2004 à 23:27
Super =D
Le code est bien commenté, bien architecturé .... Ca va me servir, c est clair.
Le seul bémol -> ca marche que sous windows :/
Enfin bon, ca peut donner des idées pour un portage éventuel vers d autres librairies ...
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 18 févr. 2004 à 16:59
n'hésitez pas à faire pleins de remarques, positives ou negatives!
14 sept. 2006 à 18:49
14 sept. 2006 à 18:13
24 juin 2006 à 12:52
Est qu'on est sur que l'autre personne a bien recu les messages envoyés ou il vaut mieux que le client reponde au serveur qu'il a bien recu les commandes ? En fait je l'utilise dans un jeu en reseau et le serveur envoi des infos au client et tant que le client ne recoit pas ces infos il bloque, si les données se perdent c'est foutu (en UDP par exemple le serveur envoi des paquets mais se fout de savoir si ils sont recus).
Pour "nettoyer" les connections est ce que sockclose suffit ? En fait je lance l'appli en mode serveur puis 5 min apres je la relance en mode client sans rien redemarrer juste en faisant un sockclose puis de nouveau SockPrinc = CreateProSocket(ServerProc);
27 juin 2005 à 01:13
Effectivement, ça rend les socket beaucoup plus simples :)
10/10
31 mai 2005 à 08:26
dsl de répondre 10ans apres.
si tu veux faire un truc pareil, faut que tu connaisses precisement le protocole utilisé par un vpn (qui se base peut etre aussi en partie sur des sockets udp tiens)
A mon avis c'est pas évident, mais c'est en tout cas pas le sujet de cette source, meme si elle peut te simplifier legerement les choses qd tu en seras a la partie purement socket...
8 nov. 2004 à 15:52
Moi je voudrai réaliser un client et un server VPN le plus simple possible, c a d je lance le server (un .exe tout petit) , mes pots lancent chacun le client ( un .exe tout petit ) et hop on est connecté à distance et on se voit sur le réseau.
je précise je ne ve pas de service de messagerie, c a d je ve juste quon se voi en reseau comme ca on se voit dans les jeux comme si on été en reseau local.
voila merci à ce qui pourront maider
25 avril 2004 à 13:19
tu mets ca au début du code du serveur en remplacement de 'ProSock SAccept = CreateProSocket(ServerProc);'
int compteur = 1;
ProSock SAccept1 = CreateProSocket(ServerProc);
ProSock SAccept2 = CreateProSocket(ServerProc);
ProSock SAccept3 = CreateProSocket(ServerProc);
et dans ListenProc tu mets :
case ON_SOCKLISTEN:
{
printf("Un client est arrive\n");
if (compteur == 1)
s->SockAccept(&SAccept1);
else if (compteur == 2)
s->SockAccept(&SAccept2);
if (compteur == 3)
s->SockAccept(&SAccept3);
compteur++;
// On peut choisir ou nom de fermer une fois que quelqu'un s'est connecté
// s->SockClose(); on ne le ferme plus...
break;
}
il faut encore adapter le code pour que quand un client se déconecte, on décremente compteur, et qu'on puisse a nouveau utiliser le bon SAccept. Mais bon ca ce n'est plus tellement de l'utilisation de la classe, c'est de la prog plus générale....
voir aussi la remarque sur la maniere de créer un tableau de prosocket. possibilité également d'utiliser le champ State de la classe, pour voir si un proSocket est toujours en train d'etre utilisé. (a vous de le changer aux bons moments)
a++ ;p
19 avril 2004 à 17:45
je suis etudiant et j'aimerai travailler sur ce code mais seulement je n'arrive pas à le modifier pour pouvoir utiliser plusieurs clients.
En fait, je ne sais pas comment faire car les classes c'est un mystère pour moi.
En effet, je voudrais pouvoir avoir un serveur et deux ou trois clients.
Donc si quelqu'un pourrait m'aider cela serait sympa.
Merci
20 févr. 2004 à 12:29
20 févr. 2004 à 12:24
20 févr. 2004 à 01:52
s->SockAccept(&SAccept); => c'est du C++
strcmp(chaine,"exit") => c'est du C (en C++ on utilise les std::string
printf("Un client est arrive\n"); => c'est du C (std::cout << "Un client est arrive\n"; en c++)
etc ...
18 févr. 2004 à 23:30
18 févr. 2004 à 23:27
Le code est bien commenté, bien architecturé .... Ca va me servir, c est clair.
Le seul bémol -> ca marche que sous windows :/
Enfin bon, ca peut donner des idées pour un portage éventuel vers d autres librairies ...
18 févr. 2004 à 16:59