Connection sur le serveur impossible

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 23 juin 2004 à 17:30
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 - 23 juin 2004 à 23:27
Bonjours a tous,
voila j'ai fait un petit jeu, trois fois rien et cela fait un moment que j'essai d'y rajouté la fonction jouable sur internet... donc j'avance un peu, mais la j'ai un probleme... mon client n'arrive pas a se connecter sur le serveur et je n'arrive pas a dire pourquoi:

#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include "resource.h"

// insertion de la librairie winsock
#pragma comment(lib, "ws2_32.lib")

// var globale
int quit = 0;

// fonction du serveur
void jeu_server(HWND hDlg)
{
// variable du serveur
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;

sock = socket(AF_INET, SOCK_STREAM, 0); // creation du socket

sin.sin_addr.s_addr = INADDR_ANY; // n'importe quelle d'adresse
sin.sin_family = AF_INET; // type internet
sin.sin_port = htons(666); // port utilisé

bind(sock, (SOCKADDR*)&sin, sizeof(sin)); // associe ip et port

// on signal l'attente d'un joueur
SetWindowText(GetDlgItem(hDlg, IDC_STATUT), "Attente d'un joueur...");

listen(sock, 0); // on attend 1 seul joueur

int sinsize = sizeof(csin);

while(quit != 1)
{
// si un joueur se connecte
if((csock = accept(sock, (SOCKADDR*)&sin, &sinsize)) != INVALID_SOCKET)
{
// on signal le joueur connecté
SetWindowText(GetDlgItem(hDlg, IDC_STATUT), "Joueur connecté");

// on definit Enable les boutons de la feuille
EnableWindow(GetDlgItem(hDlg, IDC_MULTI_PIERRE), TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_MULTI_FEUILLE), TRUE);
EnableWindow(GetDlgItem(hDlg, IDC_MULTI_CISEAU), TRUE);

quit = 1;
}
}

// on ferme les sockets
closesocket(sock);
closesocket(csock);
}

// fonction du client
void jeu_client(HWND hDlg, char *add_ip)
{
// variable du client
SOCKET sock;
SOCKADDR_IN sin;

sock = socket(AF_INET, SOCK_STREAM, 0);

sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(add_ip);
sin.sin_port = htons(666);

if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) < 0)
{
// on signal une erreur
SetWindowText(GetDlgItem(hDlg, IDC_STATUT), "Erreur lors de la connection");
}
else
{
// on signal le joueur connecté
SetWindowText(GetDlgItem(hDlg, IDC_STATUT), "Joueur connecté");

// fonction de jeu
}

// on ferme le socket
closesocket(sock);
}


voila merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."

5 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
23 juin 2004 à 18:44
J'ai pas regarder ton code, mais plusieurs personne on eu des problemes similaires .... Si en local ca marche, et en internet ca ne marche pas c'est a cause du firewall de XP ou autres ...

A++ et bonne continuation ...

Samir
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
23 juin 2004 à 18:50
le truc c'est que meme en local ca ne marche pas... et je ne comprend vraiment pas pourquoi !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
23 juin 2004 à 20:08
Envoie moi ton code entier a shellkode@hotmail.com et je regarde ca si tu veux ...

A++ et bonne continuation ...

Samir
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
23 juin 2004 à 23:15
as tu pensé a bien faire un wsastartup pour le serveur? dans ton code il y est pas en tout cas.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
23 juin 2004 à 23:27
effectivement j'avais oublié de faire un wsastartup, une fois rajouté cela marche beaucoup mieux... grosse, tres grosse erreur de ma part... merci a toi cosmobob...
pour dire la verité, pour commencé la partie online de mon jeu, j'avais fait un copié-coller, et voila le wsastartup était dans une autre fonction... voila ca m'apprendra !!!
merci encore a toi...
bonne prog
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0