1 . php
//网络字节序是指大字节序,TCP/IP都采用网络字节序方式。
//=======================================================================================
//n --无符号的短整数(16位,大字节序) )。
$str='test.string ';
$pack=pack(n ),strlen ) ) $str );
EchoStrlen($pack; //2字节,该值已确定
$unpack=unpack('nlen ',$pack ); //Len相当于被定义的变量之一,返回值是打包时的长度
echo $unpack['Len']; //strlen($str )等于11个字节
//exit;
//=======================================================================================
//N --无符号长整数(32位,大字节序) ) ) ) )。
$str='test.string ';
$pack=pack(n ),strlen ) ) $str );
EchoStrlen($pack; //4字节,该值已确定
$unpack=unpack('nlen ',$pack ); //Len相当于被定义的变量之一,返回值是打包时的长度
echo $unpack['Len']; //strlen($str )等于11个字节
退出;
//=======================================================================================
//提供socket服务的一方定义的
//如果要求边界标记的长度为2,则使用unsigned 16位的‘n’
//如果要求边界标记的长度为4,则使用unsigned 32位的‘n’
假设//,则包裹体整体为【网络字节序】信息包实体,追加发送的长度参数为【信息包实体长度网络字节序长度】
$socket=socket_create(af_inet,SOCK_STREAM,SOL_TCP );
$ connect=socket _ connect ($ socket,' 192.168.1.10 ',55660 );
$buffer='我是分组实体';
$length=Strlen($buffer );
$pack=pack(n ),$length 4);
socket_write($socket,$pack.$buffer,$length 4);
//同样从unpack中出来的lenght也等于strlen($buffer ) 4
如果是//,socket_read以后的回复数据包去掉4个长度就可以了
2.
$socket=socket_create(af_inet,SOCK_STREAM,SOL_TCP );
$conn=socket_connect($socket,' 192.168.1.10 ',55660 );
$buffer='test.string ';
$len=Strlen($buffer );
echo 'buffter length: '.$len.'
';
$pack=pack(n ),$len 2);
$send=socket_write($socket,$pack.$buffer,$len 2);
if($send ) {
echo 'send ok
';
}
$read=socket_read($socket,10240 );
echo 'read data:'.$read.'
';
echo ' read length 3360 '.strlen ($ read ).'
';
echo ' realdatais : '.substr ($ read,2 );
3 . php
classandyhuaextendsmancoresocket worker {
publicfunctiondealinput($recv ) {
//目前收到的长度
$len=Strlen($recv );
//preread_length=2
if($len2) {
返回2-$ len;
}
$t=unpack('nlen ',$recv );
//Len是软件包的实际长度
return $t['Len'] - $len;
如果$t['Len']等于$len,表示收到了
}
publicfunctiondealprocess{
返回$ this-send to client ($ recv );
//return $ this-send to client (substr ) $recv,2 );
}
}
4.[图片] QQ截图20141114144433.png
5.[图片] QQ截图20141114144329.png
本文原创发布了php中文网。 转载请注明出处。 谢谢您的尊重。