Seiji Sogabe authored on 7 Dec 2014
client コネクションがクローズされたときに、メッセージを出力する 3 years ago
core コネクションがクローズされたときに、メッセージを出力する 3 years ago
images Added How to build and run 3 years ago
server コネクションがクローズされたときに、メッセージを出力する 3 years ago
.gitignore First commit 3 years ago
README.md Added How to build and run 3 years ago
pom.xml Added LoggingHandler 3 years ago
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