Autor Zpráva
LiborZ
Profil
V php jsem začátečník a potřeboval bych poradit.
Připojuji se ke vzdálenému zařízení a posílám mu řetezec znaků a a očekávám konkrétní odpověď. Problém je v tom, že někdy mi přijde jako odpověď jen jeden znak, někdy jen část řetězce, někdy polovina, ale nikdy celý. Vždy chybí první část přijatého řetězce. Délka přijatého řetězce by měla být přesně 42 znaků a zachycená část má jen 1, 9 nebo 20 znaků - jak, kdy.

$fp = fsockopen (IP adresa, port, $errno, $errstr, 30);

//odeslání řetězce "AAAA010000000000000155"
$command = Chr(170);
$command .= Chr(170);
$command .= Chr(1);
$command .= Chr(0);
$command .= Chr(0);
$command .= Chr(0);
$command .= Chr(0);
$command .= Chr(0);
$command .= Chr(0);
$command .= Chr(1);
$command .= Chr(85);
FPutS($fp, $command);

//příjem odpovědi
$characters1 = fread($fp, 8192);

//vypíše délku přijatého řetězce
echo "delka retezce je ".strlen($characters1)."znaku.<br />";

//zobrazení přijatých znaků
echo "1. znak je ", ord(substr($characters1, 1, 1)).".<br />";
echo "2. znak je ", ord(substr($characters1, 2, 1)).".<br />";
echo "3. znak je ", ord(substr($characters1, 3, 1)).".<br />";
echo "4. znak je ", ord(substr($characters1, 4, 1)).".<br />";
echo "5. znak je ", ord(substr($characters1, 5, 1)).".<br />";
....
fclose ($fp);

Co mám špatně?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0