Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  créer un resau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

créer un resau

n°1188998
Amonchakai
Posté le 31-08-2005 à 19:00:38  profilanswer
 

Bonjour !!!
 
   Bon, voilà : je suis à la recherche d'explication pour créer un résau. Car voilà j'ai fait un petit jeu qui marche plutôt bien. bon je travaille encore sur la gestion des colision mais j'ai déjà une première version qui marche (peut être pas trop propre mais j'améliore ...)
 
   Mais bon voilà pour le moment ce jeu a autant d'intéret que quake 3 tout seul et sans bots... Alors il me reste "juste" a faire communiquer plusieurs PC et ça devrait être pas mal.  
 
   Bon pour le moment je connais juste la méthode (attention les yeux ) _bios_serialCom() : pour utiliser le port série. Mais bon là j'ai déjà un problème : le compilateur m'annonce une erreur de lien comme quoi il ne reconnais pas la fonction "_bios_serialCom()". pourtant dans le livre où je l'ai tirée il ne parle pas de lien a rajouter...
   
   Enfin de toute façon j'aimerais plutôt utiliser mes cartes résau. mais j'arrive pas a trouver dans google un tutorial qui m'expliquerait comment faire. Aussi pouvez vous m'aider en m'expliquant comment ça marche ou m'indiquer un site où je pourrais le comprendre ?
 
MERCI !!!   :)  

mood
Publicité
Posté le 31-08-2005 à 19:00:38  profilanswer
 

n°1189360
Amonchakai
Posté le 01-09-2005 à 12:01:19  profilanswer
 

bon... j'ai finalement compris que ce que je cherchai en fait c'était comment utiliser des socket... alors du coup a partir du moment que j'ai sus quoi cherché j'ai commencé a trouver des tutoriel sur le sujet. Mais là j'avoue avoir encore un petit problème : j'ai lu un tutoriel que j'ai trouvé et j'ai essayé l'exemple proposé et ... ca marche pas...  :??:  
 
bon voilà le code proposé :  
 
pour le client :
 

Citation :


#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib" )
#include<stdio.h>
 
int main(int argc, char *argv[])
{
   WSADATA WSAData;
   WSAStartup(MAKEWORD(2,0), &WSAData);
   
   SOCKET sock;
   SOCKADDR_IN sin;
   char *buffer = new char[256];
   
   sock = socket(AF_INET, SOCK_STREAM, 0);
   
   sin.sin_addr.s_addr = inet_addr("169.000.000.000" );
   sin.sin_family = AF_INET;
   sin.sin_port = htons(6667);
   connect(sock, (SOCKADDR *)&sin, sizeof(sin));
   recv(sock, buffer, sizeof(buffer), 0);
   closesocket(sock);
   WSACleanup();
   printf("recu : " );
   for(int i = 0 ; i < 256 ; i++)
      printf("%c",buffer[i]);
}


 
remarque : le printf() c'est de moi pour afficher le texte reçu ... (oui bon je sais c'est du C ) et "169.000.000.000" c'est mon adresse IP du serveur.
 
et pour le serveur :

Citation :


#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib" )
#include<stdio.h>
 
int main(int argc, char *argv[])
{
   WSADATA WSAData;
   WSAStartup(MAKEWORD(2,0), &WSAData);
   
   SOCKET sock;
   SOCKET csock;
   SOCKADDR_IN csin;
   SOCKADDR_IN sin;
   
   sock = socket(AF_INET, SOCK_STREAM, 0);
   
   sin.sin_addr.s_addr = INADDR_ANY;
   sin.sin_family = AF_INET;
   sin.sin_port = htons(23);
   connect(sock, (SOCKADDR *)&sin, sizeof(sin));
   listen(sock, 0);
   while(1)
   {
      int sinsize = sizeof(csin);
      if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
         send(csock, "Hello world !!!",16,0);
   }  
}


 
Donc voilà le tout passe le compilateur mais au moment de l'exécution le programme du client affiche juste "recu : " et rien de plus...  
 
heu vous voyez l'erreur ???  
 
MERCI !!!  :)

n°1189533
Amonchakai
Posté le 01-09-2005 à 14:54:15  profilanswer
 

oops... je me suis déjà aperçu d'une petite erreur :  
 
pour le serveur c'est pas  

Citation :

connect(sock, (SOCKADDR *)&sin, sizeof(sin));

 
mais

Citation :

bind(sock, (SOCKADDR *)&sin, sizeof(sin));


 
mais bon ça marche toujours pas...  :fou:

n°1191304
Amonchakai
Posté le 03-09-2005 à 19:56:04  profilanswer
 

Il n'y a vraiment personne qui pourrait m'aider ???
 
Dans la documentation que j'ai trouvé ils parlent de port telnet, est-ce vraiment du résau local comme je souhaite le faire ?
pouvez vous me dire si c'est vraiment vers le socket que je dois me diriger pour faire un résau local ?
 
Merci

n°1191504
jan0
Posté le 04-09-2005 à 09:21:56  profilanswer
 

d'après le code du second post, ton serveur écoute sur le port 23 tandis que ton client se connecte au port 6667 :)

n°1194054
Amonchakai
Posté le 07-09-2005 à 13:49:22  profilanswer
 

Merci de m'avoir répondu !!!  
 
mais malgré les avoir mis tous les les deux sur le même port ça ne change rien...  :fou:

n°1194375
moi23372
Posté le 07-09-2005 à 17:54:55  profilanswer
 

change d'adresse ip!  
ça marchera pas avec 169.0.0.0
prends plutot alors 169.0.0.1
de 1 à 254
pas prendre le 0 ni le 255 c'est des adresses spéciales

n°1195260
Amonchakai
Posté le 08-09-2005 à 17:17:20  profilanswer
 

  Ok merci, mais en fait j'avais déjà essayé de changer d'adresse IP. ma nouvelle adresse est une que windows m'a donné de lui même : c'est "169.254.15.61". (je l'ai obtenue en créant une partie en resau local de Half-Life.)
 
   Au fait au moment où j'avais voulu la choisir moi même j'avais le choix de spécifier mon adresse IP et mon adresse IP en cache... L'adresse IP en cache vous savez ce que c'est ? comment on peut l'avoir ? et a votre avis si je parviens a l'avoir ça peut marcher avec celle la ?  :??:

n°1195434
Ethanz
Posté le 08-09-2005 à 19:13:35  profilanswer
 

169.254.15.xxx n'est elle pas une adresse d'erreur type que tu recois quand ta carte a des problemes de connectivité, logiquement ton adresse en local devrait etre de lordre de 192.168.0.xxx
Essaie de "forcer" ces ip.
 

n°1196036
Amonchakai
Posté le 09-09-2005 à 15:22:53  profilanswer
 

Ok merci j'essaye ça tout de suite...
 
mais je t'avoue que ça m'étonnerait puisque mon resau local entre mes deux ordinateurs marche très bien...

mood
Publicité
Posté le 09-09-2005 à 15:22:53  profilanswer
 

n°1196098
Amonchakai
Posté le 09-09-2005 à 16:17:26  profilanswer
 

Bon alors j'ai essayé de changer de changer mon addresse IP en : "192.168.0.1" mais une fois l'avoir fait j'ai eu un problème : même mon resau local n'était plus reconnu (je ne pouvais plus acceder a mon autre ordinateur...) alors après plusieurs redémarages j'ai finalement remis mon adresse a "169.254.15.61" et ensuite ça marchait a nouveau... (Enfin je pense quand même ressayer ce soir). Mais je t'avoue que je suis plus que septique puisque je n'ai aucun problème pour acceder d'un ordinateur à l'autre via resau et que j'ai également aucun problèmes pour jouer en resau. comme entre autre à Half-Life. Alors j'ai voulu essayer de voir en utilisant un jeu plus ancien qui ne détecte pas automatiquement le PC connecté et j'ai alors choisit GTA (le premier du nom...) et là au moment que je veut me connecter a un autre ordinateur il me demande l'addresse IP du serveur et la je lui set :"169.254.15.61" et là aucun problème il me trouve le serveur et le jeu en resau commence...
 
  Aussi je t'avoue que je doute vraiment que le problème vienne de mes adresses IP. Malgré, s'il est vrai que pour le moment tout le monde qui m'a répondu tend vers ce probème...

n°1196206
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-09-2005 à 19:29:02  profilanswer
 

firewall ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1196215
Amonchakai
Posté le 09-09-2005 à 19:50:38  profilanswer
 

non je pense pas, j'aurrais eu un message demandant l'autorisation ou non de la connection au reseau de mon programme. Deplus hors internet je désactive toujours le firewall...

n°1196427
Amonchakai
Posté le 10-09-2005 à 11:16:09  profilanswer
 

Bon finalement je viens de réussir a progresser d'un pas ...  :bounce:  
 
j'ai retouché au code du serveur qui deviens maintenant :
 

Citation :


#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib" )
#include<stdio.h>
 
int main(int argc, char *argv[])
{
   WSADATA WSAData;
   WSAStartup(MAKEWORD(2,0), &WSAData);
   
   SOCKET sock;
   SOCKET csock;
   SOCKADDR_IN csin;
   SOCKADDR_IN sin;
   
   sock = socket(AF_INET, SOCK_STREAM, 0);
   
   sin.sin_addr.s_addr = INADDR_ANY;
   sin.sin_family = AF_INET;
   sin.sin_port = htons(23);
   bind(sock, (SOCKADDR *)&sin, sizeof(sin));
   listen(sock, 0);
   while(1)
   {
      int sinsize = sizeof(csin);
      if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
         {printf("." );
            send(csock, "hello world",12,0);
         printf("+" );
         }
   }  
}


 
et donc j'ai remplacé  

Citation :


send(sock, "hello world",12,0);


 
par :  

Citation :


send(csock, "hello world",12,0);


 
et là ça marche !!! :)  enfin... pas complètement... le message "hello world" n'est pas envoyé complètement : je reçois juste : "hell" et c'est tout : juste les 4 premiers caractères... pourtant le 12 le la methode send() était censé dire d'envoyer les 11 caractères + le caractère null non ???  :??:

n°1196548
_eWok_
Posté le 10-09-2005 à 15:12:39  profilanswer
 


send(csock, "hello world\r\n", 13, 0);
 
 :)

n°1196582
jan0
Posté le 10-09-2005 à 16:34:04  profilanswer
 

Citation :


recv(sock, buffer, sizeof(buffer), 0);


sizeof(buffer) = 4 car c'est un pointeur

n°1196741
Amonchakai
Posté le 10-09-2005 à 19:50:43  profilanswer
 

heuuu merci Jan0 en fait c'était vraiment ça ...  :D  
 
Bon ba maintenant mon programme marche bien ...
 
Merci a tous de m'avoir répondu !!!

n°1258119
matthieu59​78
Posté le 03-12-2005 à 15:53:14  profilanswer
 

J'utilise le meme code client avec un while en plus et je me connecte à mon serveur smtp et voici ce que j'ai dans ma console msdos (je ne comprends pas tout) Le nom de domaine de mon serveur est sortirdechezsoi.free.fr  Le mon de mon serveur mail est postfix .  
 
recu : 220 ©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Con
trol Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;
.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15
 Model 47 Stepping 0, Arecu : venu©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\A
TI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.E
XE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_I
DENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : s.so©♥= 2;C:\WINDOWS;C:\WIN
DOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SO
NICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHI
TECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : rtir
©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;
C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.W
SF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 S
tepping 0, Arecu : dech©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technolo
gies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CM
D;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x
86 Family 15 Model 47 Stepping 0, Arecu : ezso©♥= 2;C:\WINDOWS;C:\WINDOWS\System
32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PAT
HEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86
 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : i.fr©♥= 2;C:\WI
NDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1
\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PRO
CESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0,
Arecu : ee.f©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Co
ntrol Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE
;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 1
5 Model 47 Stepping 0, Arecu : r ES©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\
ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.
EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_
IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : MTP ©♥= 2;C:\WINDOWS;C:\WI
NDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\S
ONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCH
ITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : Pos
t©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel
;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.
WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47
Stepping 0, Arecu : fix ©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technol
ogies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.C
MD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=
x86 Family 15 Model 47 Stepping 0, Arecu : (2.0©♥= 2;C:\WINDOWS;C:\WINDOWS\Syste
m32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PA
THEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x8
6 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : .13)©♥= 2;C:\W
INDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~
1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PR
OCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0,
 Arecu :  (Ma©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI C
ontrol Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VB
E;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family
15 Model 47 Stepping 0, Arecu : ndra©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:
\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;
.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR
_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : ke L©♥= 2;C:\WINDOWS;C:\W
INDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel;C:\PROGRA~1\FICHIE~1\
SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PROCESSOR_ARC
HITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, Arecu : in
ux©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Pane
l;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;
.WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47
 Stepping 0, Arecu : )
x©♥= 2;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ATI Technologies\ATI Control Panel
;C:\PROGRA~1\FICHIE~1\SONICS~1\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.
WSF;.WSH PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 15 Model 47
Stepping 0, A


Message édité par matthieu5978 le 03-12-2005 à 17:07:30

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  créer un resau

 

Sujets relatifs
Comment creer un fichier excel sous vb.net?creer un prog installable de c++builder avec installshield
créer son équipe de programmation[PHP/HTML...] Créer une boîte de news
[Resolu]creer plusieurs graph a partir du meme tableau excel?Créer un rollover sur un rollover
comment créer un projet adp en vb6 ?créer menu fixe + aide
creer un fichier VBS, a partir de bloc notes par excomment creer une doctype!
Plus de sujets relatifs à : créer un resau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR