CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C,Reseau] pb pour etablir la connection

guyver2
guyver2
Niveau 10
25 septembre 2005 à 23:51:58

alors voila j´ai fait un petit morpion 2 joueurs qui fonctionne via internet.
je l´ai essayer chez moi en demandant de se connecter a 127.0.0.1 (moi meme) et la pas de probleme.

ce soir je viens tout fier chez un copain ,j´était content vu que tous ceux que je connais se foute de moi quand je passe la nuit entiere sur un prog et là je vien avec un truc fini et qui marche...
mais qui finalement ne fonctionne pas:
explication etape par etape:
1) je me connecte a son reseau wifi.
2) il se connecte a son reseau wifi
3) je recupere son adresse IP
4) il recupere la mienne
5) je lance le jeu.
6) il lance le jeu.
7) et là rien les jeux ne se connectent pas...

alors diagnostique perso : je pense que ça vient du fait qu´on utilise la meme connection internet.
nos IP étai quasiment identique (10.0.1.5 et 10.0.1.7)

si quelqu´un a une explication elle est la bienvenue.

je vais rééssayer demain a la fac avec deux ordis differents (ça avait marché pour un ancien prog).

je vais aussi essayer le minichat des tutos de JYY la au moins je suis sur que le prog n´a pas d´erreur.

JeanYvesYves
JeanYvesYves
Niveau 10
26 septembre 2005 à 08:46:20

teste les valeurs de retour de toutes les fonctions (socket, accept, connect, listen, bind...)

sinon, a quel port te connectes tu ?

si ça se trouve ton pote a un firewall qui bloque purement la connection :) vérifie cela aussi !

Fenix-reborn
Fenix-reborn
Niveau 1
26 septembre 2005 à 09:19:41

Le probleme que tu décris semble davantage provenir d´un probleme de configuration réseau que d´autre chose. En effet, deux ip différentes sont différentes, proches ou pas (le concept de proche n´a aucun sens pour l´ordinateur), et si ton programme fonctionne avec l´adresse de rebouclage (127.0.0.1 ou localhost), il devrait fonctionner a travers le réseau.

guyver2
guyver2
Niveau 10
26 septembre 2005 à 13:54:37

JYY

je me connecte au port 7000 comme tu le conseil dans un de tes tutos.

j´ai débloqué son firewall.

oups il faut que j´aille en cours je revient a 16h30 j´ai d´autres truc a vous dire sur mon prob qui pourais vous aider a m´aidre.

Fenix[74]
Fenix[74]
Niveau 10
26 septembre 2005 à 14:25:26

ouais moi j´ai une super idée. Paste le code de ton appli ( http://rafb.net/paste/ ) et comme ca on verra si ca vient de ton appli.

guyver2
guyver2
Niveau 10
26 septembre 2005 à 15:14:40

Paste le code de ton appli

ok je fais ça se soir.

entre temps j´ai essayer mon jeu avec 2 ordis a la fac et ça marche impec.

quelques precision:
j´ai compilé mon prog sous windows xp sp2. >> OK
les ordis de la fac ont xp pro. >> OK
mon deuxieme ordi a xp sp1 et le jeu ne marche meme pas avec l´ordi lui meme(127.0.0.1)
mon pote a XP sp1 >> marche pas.

la version du systeme d´exploitation est peut-etre une explication.

je vais le recompiler sous XP sp1 ce soir et faire de nouveau test.

godrik
godrik
Niveau 30
26 septembre 2005 à 15:17:30

la version de l´OS ne devrait pas etre tres impactante.
la presence d´un firewall l´est peut etre plus.

JeanYvesYves
JeanYvesYves
Niveau 10
26 septembre 2005 à 15:20:59

Test les valeurs de retour de toutes les fonctions réseau, tu verras laquelle te renvoie une couille, et quel message d´erreur elle te donne :)

guyver2
guyver2
Niveau 10
26 septembre 2005 à 16:31:14

JYY
Test les valeurs de retour de toutes les fonctions réseau

je met un fprintf(stdout,val) apres chaque fonctions reseau?

JeanYvesYves
JeanYvesYves
Niveau 10
26 septembre 2005 à 16:46:33

par exemple.
Sinon, tu utilises le debuggueur.

guyver2
guyver2
Niveau 10
26 septembre 2005 à 19:42:43

bon alors j´ai recompilé sous win xp sp1 et ça change rien. (d´ailleur j´avai dit que mon pote avait sp1 mais il a sp2 comme moi donc c´est pas un pb d´OS).

JYY
Test les valeurs de retour de toutes les fonctions réseau

c´est fait.

je vous explique un poil comment fonctionne la partie reseau:
1)le prog test si il peut se connecter en tant que client.
2)si ok on passe au jeu pas de pb.
2´)si la fonction client retourne une erreur alors le prog passe en mode serveur qui attend la connection d´un client.
3)quand un client se connecte alors le prog passe a la partie jeu

maintenant le resultat du test des valeur de retour des fonctions reseau.
le probleme c´est que ce test n´apporte rien de tres interessant:
-sur les ordis ou ça ne fonctionne pas, a chaque fois la connection en tant que client echoue.(meme si un serveur est deja en train d´attendre).
je vous poste le code correspondant.

Virtuality
Virtuality
Niveau 8
26 septembre 2005 à 19:47:31

Ca m´a fait pareil avec le programme de JYY.
Lorsque je me connectait a ma propre ip ça marchait, mais dès que j´ai voulu voir si ca marchait avec un autre pc (et une ip totalement différente), ça marchait plus.

J´ai pensé au firewall (mais j´ai jamais retesté).
vala.

guyver2
guyver2
Niveau 10
26 septembre 2005 à 19:53:04

juste la partie reseau
http://rafb.net/paste/results/yQqJGr34.html

une partie entiere du code
http://rafb.net/paste/results/XsCY1p54.html

guyver2
guyver2
Niveau 10
27 septembre 2005 à 11:41:34

je viens d´uploader le jeu ainsi que toutes les sources.

voici le lien
http://www.info.univ-angengers.fr/pub/letouzey/jeux.php

ce serait sympas de me dire si le jeu tourne chez vous...
merci

godrik
godrik
Niveau 30
27 septembre 2005 à 12:30:46

mmm, le code du serveur me semble correcte.
juste une chose.
tu fais deux WSAStartup pour le serveur, c´est pas cool.
d´ailleurs tu n´en teste pas la valeure de retour.
de plus, sur ta lecture de l´ip, je ne suis pas tres convaincu.
tu fais :
char ip[15];
fgets(ip,15,f);
(d´ailleurs tu ne teste pas l´ouverture de fichier)
et man fgets dit:
"fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A ´\0´ is stored after the last character in the buffer."
ca veut dire que tu lit au plus 14 caractere alors qu´il peut y en avoir 15 dans une adresse IP.
en plus, tu as le probleme de l´existence d´une nouvelle ligne a la suite.
je ferais plutot un
fscanf ("%d.%d.%d.%d", ...);

dans le client toujours tu ecris:
bind(sock,(SOCKADDR*)&sin,sizeof(sin));
De memoire, on ne bind pas un socket client (a confirmer)

De plus, verifie ton errno lorsque tu as une erreur.
" On error, -1 is returned, and errno is set appropriately."

guyver2
guyver2
Niveau 10
27 septembre 2005 à 20:50:52

merci pour toutes ces remarques:

tu fais deux WSAStartup pour le serveur, c´est pas cool.

je fais un WSACleanup(); avant le deuxieme WSAStartup ça devrait pas poser de probleme.

char ip[15];

ça crée un tableau de 16 caractere (de ip[0] a ip[15]) donc ça suffit pour une adresse de 15 caractère maximum (plus le ´/0´)

(d´ailleurs tu ne teste pas l´ouverture de fichier)

c´est vrai mais si c´était ça qui deconne je m´en serai rendu compte.c´est pas super propre mais ça ne pose des pb que si le fichier ip.txt est supprimé.

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

en fait je n´ai pas ecris cette ligne elle vient du chat des tutos de JYY a qui je fais confiance pour s´y connaitre un poil mieu que moi.

De plus, verifie ton errno lorsque tu as une erreur.

je vais peut-etre passer pour un nul mais c´est quoi le errno

encore merci d´avoir pris du temps pour lire mon code.( as tu essayer l´executable).

godrik
godrik
Niveau 30
28 septembre 2005 à 12:28:29

tu fais deux WSAStartup pour le serveur, c´est pas cool.

je fais un WSACleanup(); avant le deuxieme WSAStartup ça devrait pas poser de probleme.

Je ne l´avais pas vu. Ce n´est pas bien beau quand meme! :)

char ip[15];

ça crée un tableau de 16 caractere (de ip[0] a ip[15]) donc ça suffit pour une adresse de 15 caractère maximum (plus le ´/0´)

Ah ca non par contre. "char ip[15]" ca crée un tableau sur le tas de 15 cases, de 0 a 14 et pas 16.

De plus, verifie ton errno lorsque tu as une erreur.

je vais peut-etre passer pour un nul mais c´est quoi le errno

Errno c´est une variable globale positioné par beaucoup de lib en C qui contienne un code d´erreur. Mais a priori sous windows on utilise la fonction: WSAGetLastError.
lit: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/connect_2.asp

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

en fait je n´ai pas ecris cette ligne elle vient du chat des tutos de JYY a qui je fais confiance pour s´y connaitre un poil mieu que moi.

Dans l´exemple de la page de MS, il ne bind pas.
quelqu´un a des infos la dessus ?

( as tu essayer l´executable).

Je n´ai pas de machine sous windows a porté de click ! :)

guyver2
guyver2
Niveau 10
29 septembre 2005 à 15:47:31

merci bien je vais essayer tout ça..

tu es vraiment sur pour char ip[15] qu´on ne puisse pas acceder a ip[15] ?
je vais essayer ce soir.

sinon personne a essayer l´executable.
j´ai retenté sur un ordi oû ça ne fonctionnai pas et en en lançant 5 ou 6 (sans les fermer) ça a fini par fonctionner (est-ce cela la "magie de l´informatique" ?) :)

godrik
godrik
Niveau 30
29 septembre 2005 à 17:04:13

je suis sur de sur pour les tableaux

jejej
jejej
Niveau 9
29 septembre 2005 à 18:58:24

Bah moi j´ai essaye l´exe , mais juste sur mon ordi ( avec 1227.0.0.1 quoi ) et ça marchait bien ... sinon , godrik a raison pour les tableaux .

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware