"Messenger" - status – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

"Messenger" - status – C / C++ – Fórum – Programujte.com"Messenger" - status – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Rat
~ Anonymní uživatel
4 příspěvky
10. 2. 2013   #1
-
0
-

Dobrý den,

chtěl bych udělat status (online, offline), jenže metoda, kterou využívám, ač je funkční, je hrozně pomalá.

Ukázka:

	ifstream IPsoubor;
   
	if (IPsoubor.fail()) 
	{
		cerr << "Error";
		exit(1);
	}
	
	int a;
	char IPadresy[15];
	for(;; Sleep(5000), system("cls"))
	{
		IPsoubor.open("IP.txt");
		while(!IPsoubor.eof())
		{
			a = 0;
			IPsoubor >> IPadresy;
			sConnect = socket(AF_INET, SOCK_STREAM, NULL);
			addr.sin_addr.s_addr = inet_addr(IPadresy);
			addr.sin_port        = htons(1234);
			addr.sin_family      = AF_INET;
			while(IPadresy[a] != NULL)
				a++;
			cout << IPadresy;
			for(int b = 25; (b - a) > 0; b--)
				cout << " ";
			RetVal = connect(sConnect, (SOCKADDR*)&addr, sizeof(addr));

			if(RetVal != 0)
				cout << "OFFLINE";
			else
				cout << "ONLINE";
			cout << endl;
		}
		IPsoubor.close();
	}

Nešlo by to nějak zrychlit? Případně jak. Díky.

PS: v programování se moc nevyznám, jen jsou prázniny a já se nudím 

Nahlásit jako SPAM
IP: 213.220.206.–
Reklama
Reklama
zlz
~ Anonymní uživatel
634 příspěvků
10. 2. 2013   #2
-
0
-

Funkcí ioctlsocket můžeš na tom socketu zapnout neblokující režim a po connect (který se tedy neblokne a nebude čekat na výsledek) pak funkcí select otestovat výsledek pokusu o připojení. Můžeš si tak nastavit vlastní timeout, ale hlavně můžeš bez zdržování udělat několik connectů a pak jen čekat na výsledky.

A chybí ti tam zavření socketu a na zjištění délky řetezce je funkce strlen a v C++ je taková pěkná třídička string.

Nahlásit jako SPAM
IP: 80.188.216.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 87 hostů

Podobná vlákna

Status generator — založil gledy

Server status — založil lolik

Status serveru — založil murle

Online Status — založil Milan

Status bar — založil RG-Bot

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý