#include "SDL/SDL.h"
//#include "SDL/SDL_net.h"
#include "net.hpp"

#include <iostream>
#include <vector>
#include <string>


int main( int argc, char* args[] )
{
	//server
	std::cout << "SERVER BIATCHES!!!\n";
	server serv(5000);

	uServer Userver(5002);
	uClient Ucli("localhost", "5000");

	std::vector<client*> cli;
	std::vector<client*>::iterator it, it2;

	while(1)
	{
		for (it=cli.begin();it<cli.end();it++)
			if ((*it)->ready())
			{
				char *p = (*it)->recv();
				if (p==0)
				{
					std::cout << "disconnected on recv";
					cli.erase(it);
				}
				else
				{
					std::cout << p << std::endl;
					for (it2=cli.begin();it2<cli.end();it2++)
						if (it2!=it)
							if (!(*it2)->send(p))
							{
								std::cout << "disconnected on send";
								cli.erase(it2);
							}
				}
			}
		//verifie si le client est toujours la
		client *tmp = 0;
		if ((tmp =serv.wait()))
			cli.push_back(tmp);
		//partie UDP!!!!!!!!!!!!!!!!!!!!!!!!
		if (Ucli.ready())
		{
			char *p = Ucli.recv();
			if (p)
				Userver.send(p);
		}
		if(Userver.ready())
		{

			Userver.wait();
			Ucli.send(Userver.recv());
		}

	}

	system("pause");
    //Quit SDL
    


    return 0;    
}