Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Status - C++

Ano, je to tak, prázdniny začaly a já nemám co na práci :-D
Doufám, že někdo poradí a neukamenujete mě za tu prasárnu co sem vložim :))

K dotazu: udělal jsem sice fuknkční, ovšem velmi pomalou kontrolu, zda je PC online. Když je ONLINE, jde to rychle, ale když je OFFLINE, je tam timeout asi 10s. Jde to udělat nějak jinak(rychleji)? Jak?

	ifstream IPsoubor;
   
	if (IPsoubor.fail()) 
	{
		cerr << "Error";
		exit(1);
	}
	
	int a;
	char IPadresy[15];
	for(;; Sleep(1000), 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();
	}

Díky.

Předmět Autor Datum
Co dělá funkce connect()?
Wikan 10.02.2013 19:48
Wikan
Robí sa to tak, že dáš socket do neblokujúceho módu, zavoláš connect, vrátiš socket do pôvodného mód… poslední
los 10.02.2013 20:02
los

Zpět do poradny Odpovědět na původní otázku Nahoru