ユーザ用ツール

サイト用ツール


projects:bbs_pm:manual:004

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

projects:bbs_pm:manual:004 [2021/09/27 20:09] – created - external edit 127.0.0.1projects:bbs_pm:manual:004 [2024/12/23 18:19] (現在) naoit0
行 25: 行 25:
 受信処理の流れは下図の通りです。\\ 受信処理の流れは下図の通りです。\\
  
-{{ 20210821-160047.png?nolink }}+{{ :projects:bbs_pm:manual:20210821-160047.png?nolink }}
  
 BBS.pmはノードからの受信データを取得するとonRecvイベントを発生し、受信データを引数に設定してonRecvハンドラを呼び出します。\\  BBS.pmはノードからの受信データを取得するとonRecvイベントを発生し、受信データを引数に設定してonRecvハンドラを呼び出します。\\ 
行 50: 行 50:
 続きの分割データはonRecvハンドラを抜けるとBBS.pmが続きの分割データを取得することでonRecvイベントが発生し、呼び出されるonRecvハンドラから取得することができます。\\ 続きの分割データはonRecvハンドラを抜けるとBBS.pmが続きの分割データを取得することでonRecvイベントが発生し、呼び出されるonRecvハンドラから取得することができます。\\
  
-{{ 20210827-223826.png?nolink }}+{{ :projects:bbs_pm:manual:20210827-223826.png?nolink }}
  
 ここで注意すべきことは分割されたデータの分割点が文字コードの中間で分断していると文字データの断片は続きのデータを受け取って連結を行わないと文字データとして認識することができません。\\ ここで注意すべきことは分割されたデータの分割点が文字コードの中間で分断していると文字データの断片は続きのデータを受け取って連結を行わないと文字データとして認識することができません。\\
行 56: 行 56:
 たとえばUTF-8の文字コードは日本語や記号などは1文字あたり3~4バイトで構成していますが、1文字あたりの文字コードの1バイト目と2バイト目の境目、または2バイト目と3バイト目の境目などでデータが分断されているとデータを受け取った時点では文字として識別できません。\\ たとえばUTF-8の文字コードは日本語や記号などは1文字あたり3~4バイトで構成していますが、1文字あたりの文字コードの1バイト目と2バイト目の境目、または2バイト目と3バイト目の境目などでデータが分断されているとデータを受け取った時点では文字として識別できません。\\
  
-{{ 20210827-230343.png?nolink }}+{{ :projects:bbs_pm:manual:20210827-230343.png?nolink }}
  
 分断された断片データを文字として認識するためには、続きのデータを受け取って取得済みのデータと連結する必要がありますが、データの続きを取得するにはonRecvハンドラを抜け、次のonRecvハンドラが呼び出されないと取得できませんので、取得したデータをバッファリングしてonRecvハンドラを抜け、次のonRecvハンドラで続きの分割データを取得したときにバッファリングした分割データと結合します。\\ 分断された断片データを文字として認識するためには、続きのデータを受け取って取得済みのデータと連結する必要がありますが、データの続きを取得するにはonRecvハンドラを抜け、次のonRecvハンドラが呼び出されないと取得できませんので、取得したデータをバッファリングしてonRecvハンドラを抜け、次のonRecvハンドラで続きの分割データを取得したときにバッファリングした分割データと結合します。\\
  
-{{ 20210827-225254.png?nolink }}+{{ :projects:bbs_pm:manual:20210827-225254.png?nolink }}
  
 ここまでをまとめると次のようになります。\\ ここまでをまとめると次のようになります。\\
行 117: 行 117:
 受信処理の流れは下図の通りです。\\ 受信処理の流れは下図の通りです。\\
  
-{{ 20210821-160113.png?nolink }}+{{ :projects:bbs_pm:manual:20210821-160113.png?nolink }}
  
 データの送信を行うときは関数send()を呼び出しますが、この関数が呼び出されるとonSendイベントが発生し、送信データを引数に設定してonSendハンドラを呼び出します。\\ データの送信を行うときは関数send()を呼び出しますが、この関数が呼び出されるとonSendイベントが発生し、送信データを引数に設定してonSendハンドラを呼び出します。\\
projects/bbs_pm/manual/004.1632740985.txt.gz · 最終更新: 2021/09/27 20:09 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki