Pages : 1
#1 Le 12/05/2007, à 18:48
- gusgus
SDL_net probleme de connexion
Je vais devenir fou!Sa fait 3 mois que j'essay d'installer un serveur sur Xubuntu.Vu que apache et companie ne marchent pas , j'ai dessider d'en faire un moi meme(j'ai pas besoins d'une usine a gaz...).
Seulement l'ordi a un probleme: on dirai que les tentatives de connexion sont bloquées(alors que je n'est pas de par-feu!)...
Que faire(a par me jeter par la fenêtre?)
voila le code du serveur[xubuntu 6.10]
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
#include <SDL.h>
#include <SDL_Net.h>
void sendFile(TCPsocket Socket)
{
FILE* fichier = fopen("ex.wma", "rb");
if (fichier != NULL)
{
int c;
while((c = fgetc(fichier)) != EOF)
{
//printf("sdsd");
SDLNet_TCP_Send(Socket,(void*)&c,sizeof(int));
}
printf("ssdsd");
SDLNet_TCP_Send(Socket,(void*)&c,sizeof(c));
fclose(fichier);
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier test.txt");
}
};
int main( int argc, char* argv[] )
{
SDLNet_Init();
TCPsocket serveur,connectee;
IPaddress adresse;
SDLNet_ResolveHost(&adresse,NULL,4148);
serveur = SDLNet_TCP_Open(&adresse);
if ( serveur == NULL )
{
fprintf(stderr, "Couldn't create server socket: %s\n",
SDLNet_GetError());
}
connectee = NULL;
while(connectee == NULL)
{
connectee = SDLNet_TCP_Accept(serveur);
}
while (true)
{
sendFile(connectee);
};
/*FILE* Fichier = fopen("ex.wma", "rb");
FILE* nvFichier = fopen("ex2.wma", "w+b");
int number=10;
char data[1024];
SDLNet_Write32(number,data);
int number2=0;
number2=SDLNet_Read32(data);
std::cout<<number2;*/
SDLNet_Quit();
system("PAUSE");
return 0;
}
et le code client[XP]
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
#include <SDL.h>
#include <SDL_Net.h>
int main( int argc, char* argv[] )
{
SDLNet_Init();
// Code à placer dans l'exemple précédant
TCPsocket Socket;
IPaddress Hote;
printf("dfdfd");
SDLNet_ResolveHost(&Hote,"192.168.1.5",6000); // Pour se connecter à localhost
printf("1111");
Socket = SDLNet_TCP_Open(&Hote);
printf("2222");
if(Socket==NULL) printf("porbleme");
else
{
// Maintenant Socket contient une socket valide que l'on peut utiliser
// pour communiquer, ou est égale à NULL
if(Socket==NULL) std::cout<<"Impossible de se connecter\n";
FILE* fichier = fopen("ex4.wma", "w+b");
printf("dfdfdf");
int c;
bool a=true;
while(a)
{
SDLNet_TCP_Recv(Socket,&c,sizeof(int));
printf("sdsd");
if(c!=EOF)
{
//std::cout<<c;
fputc(c, fichier);
}
else
{
fclose(fichier);
printf("fini!!");
a=false;
};
};
}
SDLNet_Quit();
system("PAUSE");
return 0;
}
Sous XP il y a pas de probleme(c'est pas le meme ordi aussi).
AARRRRRRRRRRRRRRGGGGGGGGGGGGGHHHHHHHHHHHHHHHHH
Hors ligne
Pages : 1