2

これはCコードです。

#pragma pack(push,1)
typedef struct _DATA_PKT_D1
{
    char    length[2];
    char    command[2];
    char    src[64];
    char    lordId;
    char    user_id[20];
    int     level;
    char    isFine;
    char    company_code;
}DATA_PKT_D1;
#pragma pack(pop)

DATA_PKT_D1 *pkt = malloc(sizeof(DATA_PKT_D1);

//send pkt through TCP socket. 

データパケットは95バイトです。私はphpがtcpソケット機能も持っていることを知っています。しかし、phpでパケットをまったく同じにすることは可能ですか?(つまり95バイト)そしてtcpを介してデータを送信しますか?

phpにバイナリレベルの構造体機能があるとは思えません...

ヒントplz〜

4

1 に答える 1

3

ええ、PHP でバイナリ データを構築することは完全に可能ですが、C よりも少し、いや、はるかに洗練されていません。PHP 変数からバイナリ バッファを作成できる pack/unpack 関数が必要です。http://php.net/manual/en/function.pack.phpを参照してください

過去に、バイナリ プロトコル (暗号化されていても) 用に UDP サーバーとクライアントを実装しました。見苦しいですが、動作します。注意すべき唯一のことは、エンディアンです。

于 2012-05-18T08:00:40.630 に答える