����ͨ��Э�����

Ϊʲô��Ҫͨ��Э��

TCPЭ���ڵײ�����Ͻ����UDPЭ���˳��Ͷ����ش����⡣�����UDP�ִ������µ����⣬TCPЭ������ʽ�ģ����ݰ�û�б߽硣Ӧ�ó���ʹ��TCPͨ�žͻ�������Щ���⡣

��ΪTCPͨ������ʽ�ģ��ڽ���1�������ݰ�ʱ�����ܻᱻ��ֳɶ�����ݰ����͡����Send�ײ�Ҳ���ܻ�ϲ���һ�ν��з��͡��������Ҫ2�������������

����TCP����ͨ��ʱ��Ҫ�趨ͨ��Э�顣������TCP����ͨ��Э���� HTTP �� HTTPS �� FTP �� SMTP �� POP3 �� IMAP �� SSH �� Redis �� Memcache �� MySQL ��

���Ҫ���һ��ͨ��Э���Server����ô��Ҫ����ͨ��Э��ı�׼ȥ�����������ݡ�����ͨ��Э���⻹�����Զ���Э�顣Swoole֧����2�����͵��Զ�������ͨ��Э�顣

EOF��������

EOFЭ�鴦���ԭ����ÿ�����ݰ���β��һ�������ַ���ʾ���ѽ������� memcache �� ftp �� stmp ��ʹ�� \r\n ��Ϊ����������������ʱֻ��Ҫ�ڰ�ĩβ���� \r\n ���ɡ�ʹ��EOFЭ�鴦��һ��Ҫȷ�����ݰ��м䲻�����EOF���������ɷְ�����

�� swoole_server �� swoole_client �Ĵ�����ֻ��Ҫ����2�������Ϳ���ʹ��EOFЭ�鴦��

$server->set(array(
    'open_eof_split' => true,
    'package_eof' => "\r\n",
));
$client->set(array(
    'open_eof_split' => true,
    'package_eof' => "\r\n",
));
        

�̶���ͷ+����Э��

�̶���ͷ��Э��dz�ͨ�ã���BAT�ķ����������о����ܿ���������Э����ص���һ�����ݰ������ɰ�ͷ+����2������ɡ���ͷ��һ���ֶ�ָ���˰�����������ij��ȣ�����һ����ʹ��2�ֽ�/4�ֽ���������ʾ���������յ���ͷ�󣬿��Ը��ݳ���ֵ����ȷ������Ҫ�ٽ��ն������ݾ�ʱ���������ݰ���Swoole�����ÿ��Ժܺõ�֧������Э�飬������������4�����Ӧ�����������

Swoole��Server���첽Client������ onReceive �ص������д������ݰ�����������Э�鴦���ֻ���յ�һ���������ݰ�ʱ�Żᴥ�� onReceive �¼���ͬ���ͻ�����������Э�鴦��󣬵��� $client->recv() ������Ҫ���볤�ȣ�recv�������յ��������ݰ���������󷵻ء�

$server->set(array(
    'open_length_check' => true,
    'package_max_length' => 81920,
    'package_length_type' => 'n', //see php pack()
    'package_length_offset' => 0,
    'package_body_offset' => 2,
));