以下備忘録。
本家はVisual C++で実装。
オブジェクト構造検討 Consider the Object Sstructure
| Version | numeric 32bit |
| PacketNo | numeric unsigned 32bit |
| User Name | String(Must Be ASCII) Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control characters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. |
| HostName | String(Must Be ASCII) Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control characters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. |
| Command | numeric unsigned 32bit 下位8bit:モード lower nibble 8bit (bits 1~8) 上位24bit:オプション higher nibble 24bit (bits 9~32) |
| Data | String Can not include null0x00を含んではいけない。 |
| ExData1 | String Can not include null0x00を含んではいけない。その他禁止文字については各コマンド&オプション依存。There are other forbidden characters by the command. |
| ExData2 | String Can not include null0x00を含んではいけない。その他禁止文字については各コマンド&オプション依存。There are other forbidden characters by the command. |
| User Name | String(ASCII recommended推奨) Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control characters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. |
| HostName | String(ASCII recommended推奨) Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control characters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. |
| NickName | String Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control charaters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. 本家フォーマット: ユーザ名+"[出家]" Unwritten format: userName+"[overview of reason for absence]" 不在情報(不在理由概要)を付加するため、別途不在タイプ一覧が必要。 BR系パケットでのみ使用。 |
| GroupName | String Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control charaters. 送受信時に制御文字をトリムする。Remove control characters when send and receive. BR系パケットでのみ使用。 |
| AbsenceMode ※User status | boolean ユーザが不在。User is absence. |
| Server ※Client status ? | boolean Client is Server. But I don't know the "IP Messenger Server". |
| Dialup ※Network status | boolean Client is Dial-up. |
| DirMaster ※Client status | boolean Client is Member-Master Mode. |
| CapabilityFileAttach ※Client status | boolean Supports attached file data. File share to. |
| CapabilityClipBoardAttach ※Client status | boolean Supports attached ClipBoard(in memory) data. memory data is unsaved data. |
| CapabilityUTF8 ※Client status | boolean Supports UTF8 charaset packet. |
| CapabilityEncrypt ※Client status | boolean Supports encryption. |
| CapabilityExtraMessage ※Client status | boolean Supports encrypted ExData1-2 Section. "Data{\0[ExData1][\0ExData2]}" to encrypt. |
| CapabilityFileEncrypt ※Client status | boolean Supports encrypted TCP file packet. |
| CapabilityIPDict ※Client status | boolean Supports IP Messenger Communication Protocol version 3.0 |
| AbsenceText | String 不在理由概要。Overview of reason for absence. Can not include :0x3aと\n0x0aとnull0x00を含んではいけない。 制御文字を禁止とするのが無難。Better to disable control characters. |
| AbsenceInfo | String 不在理由。Reason for absence. For IPMSG_SENDABSENCEINFO null0x00を含んではいけない。 改行以外の制御文字を禁止とするのが無難。Better to disable control characters other than line break. |
| Type | numeric unsigned 32bit ipmsg.h(Ver4.50) IPMSG_VER_WIN32_TYPE = 0x00010001 IPMSG_VER_WIN64_TYPE = 0x00010002 IPMSG_VER_MAC_TYPE = 0x00020000 IPMSG_VER_IOS_TYPE = 0x00030000 IPMSG_VER_ANDROID_TYPE = 0x00040000 |
| Major | numeric unsigned 16bit ex) "4.99r3" = 4 |
| Minor | numeric unsigned 16bit ex) "4.99r3" = 99 |
| Revision | numeric unsigned 16bit ex) "4.99r3" = 3 |
執筆中…
