検索
ホームページよくある問題tcp の長い接続を下請けする方法は何通りありますか?

tcp ロングコネクションのパケット化には、1. メッセージ長を固定する方法、2. 特殊な文字列をメッセージ境界として使用する方法、3. 長さフィールドを追加する方法、4. の 4 つの方法があります。メッセージ自体のフォーマットを使用して再委託する方法。

tcp の長い接続を下請けする方法は何通りありますか?

TCP ロング接続パケット化の 4 つの方法:
1. 固定メッセージ長
2. メッセージとして特殊な文字列を使用する境界線。たとえば、http プロトコルのヘッダーでは、フィールド区切り文字 3 として "\r\n"
が使用されます。各メッセージのヘッダーに長さフィールドを追加します。これは最も一般的な
4. メッセージ自体の形式を使用してサブパッケージ化します。たとえば、XML 内の <root></root> のペアリングなど。

関連する学習の推奨事項: PHP 初心者からマスターまでプログラミング

パケット化のためにヘッダーにメッセージ長フィールドを追加する方法について説明します
各メッセージのヘッダーが 4 バイトである場合、文字列長を格納します。たとえば、メッセージ「hello」の場合、バイト ストリームは 0x00,0x00,0x00,0x05,'h ',' e','l','l','o'
下請けを示す疑似コードを作成します:

void OnMessage()
{    while(接收缓冲buf可读字节>=头部长度4)
    {
        len = 包的长度        if(len>65536 or len<0)
        {
            关闭连接
        }        else if(buf>=len+4)
        {
            从buf中提取出4字节;
            message=将buf后的len长度内存赋给message
            messagecallback(message)调用用户代码处理message
            从buf中移除len长度
        }        else
        {
            不够一个包的长度,等待下次消息到来,break;
        }
    }
}

以上がtcp の長い接続を下請けする方法は何通りありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません