ホームページ >バックエンド開発 >PHPチュートリアル >PHP WebソケットとCサーバー間の通信に関連する問題

PHP WebソケットとCサーバー間の通信に関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:01:33886ブラウズ

PHP WebSocket と C サーバー間の通信に関する問題

	//$send_format: a4lllllalllllaala*a4<br />
	$send_format = "a4LLLLLaLLLLLaaLa".$packet_content_length."a4";<br />
	$bin_pack = pack($send_format,<br />
	                 $begin_tag,$body_tail_length,$all_packet_number,$envoy_id,$recognition_code,<br />
	                 $packet_id,$packet_request_type,$packet_body_length,<br />
	                 $packet_taskNO,$packet_middelpacketNo,$packet_minitasksequenceNo,$packet_specialkey,<br />
	                 $packet_trans_type,$packet_content_format,$packet_content_length,$packet_content,<br />
	                 $end_tag);<br />
	//----pack----------------------------------<br />
	//--------------send---------------------------<br />
	$waited_socket_write_length = BEGIN_TAG_B + BODY_TAIL_LENGTH_B + ALL_PACKET_NUMBER_B + ENVOY_ID_B + RECOGNITION_CODE_B + $body_tail_length;//20+$body_tail_length;<br />
	$actually_socket_write_length = @socket_write($socket,$bin_pack,$waited_socket_write_length);<br />
	if($actually_socket_write_length != $waited_socket_write_length)<br />
	{<br />
		socket_close($socket);<br />
		$result = array('EnglishToChineseReturn' => SOCKET_WRITE_ERROR);<br />
		return $result;<br />
	}


これはインターネット上にあるコードで、PHP WebSocket と C/C++ サーバー間の通信ソリューションを実装します。
私の知る限り、C クライアントと C サーバーが SOCKET を介して通信する場合、char 配列を直接読み書きするだけです。
しかし、このコードのパックとアンパックは私を混乱させます、
なぜこのように使用するのでしょうか?
------解決策------------------
1. 海外にいますか?中国の週末を知りませんか?
2. C の char 配列はバイナリ構造です。 PHP では直接処理できないため、pack
でパッケージ化する必要があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。