#include "net.hpp"

#include <iostream>
#include <conio.h>

/* Prototype de fonctions
   ====================== */
void saisirIP(char adrIP[]);
void saisirPort(char port[]);
bool saisirMethode();

int main( int argc, char* argv[] )
{
    char buffer[512],	//contient le message
		ip[15],
		port[5];
	int index = 0;		//determine la longeur du message complet

	bool meth = false;	//choix de la methode

	std::cout << "your nick : ";
	std::cin >> buffer;

	meth = saisirMethode();
	
	saisirIP(ip);

	saisirPort(port);

	do{}while(buffer[index++]);
	buffer[index-1] = ':';

	std::cout << "\n";

	//net
	std::cout << "network bitches\n";
	client cli(ip,port);
	

	if(meth==false)
	{
		while(1)	//tan que le client ne ferme pas
			{
				if (kbhit())
				{
					std::cin.getline(&buffer[index],512-index);
					std::cout << "\n";
					cli.send(buffer);
				}
				if(cli.ready())
					std::cout << cli.recv() << std::endl;
			}
	}
	else
	{
		while(1)
		{
			if(kbhit())
			{
					std::cin.getline(&buffer[index],512-index);
					std::cout << "\n";
					cli.send(buffer);
			}

			if (cli.ready())
			{
				char *p = cli.recv();
				if (p)
					std::cout << p << std::endl;
			}
		}
	}

	system("pause");
    return 0;  
}

/* Définitions de fonctions
   ======================== */
void saisirIP(char adrIP[])
{
	std::cout << "Sur quelle adresse IP voulez vous vous connecter ? : ";
	std::cin >> adrIP;
}

void saisirPort(char port[])
{
	std::cout << "Sur quel port voulez vous vous connecter ? : ";
	std::cin >> port;
}

bool saisirMethode()
{
	char cristal;
	std::cout << "Voulez-vous utiliser UDP (TCP par defaut) <o|n>: ";
	std::cin >> cristal;
	std::cout << std::endl;
	if(cristal == 'n')
		return false;
	else
		return true;
}