Pereiti prie turinio

[PHP] Ar įmanoma padaryti laiko limitą socketams ?


Rekomenduojami pranešimai

	function Query( $IP, $Port = 25565 )
{
	$Socket = Socket_Create( AF_INET, SOCK_STREAM, SOL_TCP );
	if( $Socket === FALSE || @Socket_Connect( $Socket, $IP, (int)$Port ) === FALSE )
	{
		return FALSE;
	}

	Socket_Send( $Socket, "\xFE", 1, 0 );
	$Len = Socket_Recv( $Socket, $Data, 256, 0 );
	Socket_Close( $Socket );

	if( $Len < 4 || $Data[ 0 ] != "\xFF" )
	{
		return FALSE;
	}

	$Data = SubStr( $Data, 3 );
	$Data = iconv( 'UTF-16BE', 'UTF-8', $Data );
	$Data = Explode( "\xA7", $Data );

	return Array(
		'HostName'   => SubStr( $Data[ 0 ], 0, -1 ),
		'Players'    => isset( $Data[ 1 ] ) ? IntVal( $Data[ 1 ] ) : 0,
		'MaxPlayers' => isset( $Data[ 2 ] ) ? IntVal( $Data[ 2 ] ) : 0
	);
}

 

Štai funkcija, kurioje socketų pagalba yra išgaunama informacija. Reikia padaryti, kad returnintų "false", jei informacija negauta per tam tikrą laiką. Panašiai kaip set_time_limit(123);, bet ši funkcija visiškai sustabdo skripto darbą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Svečias
Ši tema yra užrakinta ir joje nebegalima rašyti naujų pranešimų.
  • Populiaru šiuo metu

  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...