PHP soket bayt bayt yazmak nasıl?

3 Cevap php

PHP soket bayt bayt yazmak nasıl?

Örneğin ben böyle bir şey nasıl yapabilirim:

socket_write($socket,$msg.14.56.255.11.7.89.152,strlen($msg)+7);

Sahte kod birleştirilmiş rakam aslında dec bayt vardır. Beni anlamak umuyoruz.

3 Cevap

Dilediğiniz veri türünde veri paketlemek için pack işlevini kullanabilirsiniz. Ardından socket fonksiyonların herhangi ile gönderin.

$strLen = strlen($msg);

$packet = pack("a{$strLen}C7", $msg, 14, 56, 255, 11, 7, 89, 152);

$pckLen = strlen($packet);

socket_write($socket, $packet, $pckLen);

PHP 6 öncesi bayt sadece karakterlerdir. Bir dize dışarı yazma bayt dizisi yazma gibi aynı şeydir. Bu karakteri ondalık değerler varsa, sizinle $ msg ... biraz değiştirebilirsiniz:

$msg.chr(14).chr(56).chr(255).chr(11).chr(7).chr(89).chr(152)

Eğer yapmaya çalışıyorsunuz ne açıklamak, bize daha faydalı cevap vermek için daha kolay olacaktır, ama bu arada da şimdiye kadar tarif ettik ne yapar.

http://www.php.net/manual/en/function.socket-create.php#90573 başı olarak

Yapmanız gerekir

socket_write($socket,"$msg\x14\x56\x255\x11\x7\x89\x152",strlen($msg)+7);