現在、全銀協プロトコルという仕組みを勉強しております。
https://www.zenginkyo.or.jp/fileadmin/res/abstract/efforts/system/jba_protocol.pdf
現在、こちらの、42ページに表示されています。
基本シーケンスの通信開始時のコネクションを作ろうとしております。(クライアント側です)
全銀プロトコルでは、
通信開始時に、『サブレイヤヘッダ』と呼ばれるヘッダーと、中身の『テキスト』をセットで送信するようでございます。
このサブレイヤヘッダの構造は、36ページに記載されているのですが、
理解できない部分が多く困っております。
ヘッダの中身は8バイトの固定長で、
1.メッセージ長(2バイト)
2.版番号(4ビット)
3.識別子(4ビット)
4.予備(5バイト)
と記載されています。
現在、javaで、DataOutputStreamのwriteBytes()を使用して、
String形式のデータを送信するように作っていますが、
そもそも、このプロトコルの形式を、どのようなテキストに変換して送信すればよいかで躓いております。
まず、
メッセージ長は、86ページの通信制御電文=64バイトと記載されているので、
その中身を作り、上記のサブレイヤヘッダの後ろにつけて送信する…という大枠のイメージを持っております。
メッセージ長=64バイト+8バイト=72バイトを、
単純に
String message = '64';
とするのは間違いなのではないかと思うのですが、正解が見えません。
もし、全銀TCPなどのプロトコルを知っている方がいらっしゃいましたら、
教えていただけますと幸いです。
※追記
java
1 2Socket socket = new Socket("xxx.xxx.xxx.xxx", xxx); 3DataOutputStream os = new DataOutputStream(socket.getOutputStream()); 4BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), "sjis")); 5StringBuilder strbil = new StringBuilder(); 6strbil.append(<こちらに伝送データを追加>); 7os.writeBytes(strbil.toString()); 8 9---- 以降は、返信をbrで読み込み予定 ---- 10
回答1件
あなたの回答
tips
プレビュー