Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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