Newer
Older
netty-tcp-binary / README.md

Netty TCP Binary Example

概要

クライアント ⇔ サーバ間で、以下の電文をバイナリ形式でTCPで送受信します。

通信電文

クライアント ⇒ サーバ

電文のサイズは不定で、先頭に電文のサイズを付加します。


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             Length                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Ver              |         Message ID            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Length : Ver以降の電文のサイズ。 int 32bit
  • Ver : 電文のバージョン。 short 16bit
  • Message ID : メッセージID。 short 16bit
  • Option Length : Option Valueのサイズ。 int 32bit
  • Option Value : オプション値。String(UTF-8) 任意のサイズ

サーバ ⇒ クライアント

電文のサイズは4byte(32bit)固定です。


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              Code                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Code : レスポンスコード。int 32bit

ルーティングイメージ

ルーティングイメージ

実行方法

ソースを取得する

$git clone http://gitbucket.buildria.com/git/sogabe/netty-tcp-binary.git

ビルド

$cd netty-tcp-binary
$mvn install

サーバ実行

$cd server
$mvn camel:run

クライアント実行

$cd client
$mvn camel:run