More Related Content
PDF
ネットワーク自動化ツール紹介(Ansible・NAPALM編) PDF
PPTX
PDF
Infinite Debian - Platform for mass-producing system every second PDF
PDF
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出 ODP
Open Design Computer Project - Tsukuba.pm What's hot
PDF
161027 net opscoding-junos-automation PDF
PDF
PPTX
PDF
OpenContrailのソースコードを探検しよう! PDF
Hokkaido.cap#9 無線LANのスニッフィング PDF
Step-Oriented Programming による任意コード実行の可能性 PDF
Windows Azure の中でも動いている InfiniBand って何? ODP
PDF
Node.js with WebRTC DataChannel ODP
PPTX
第1回 html5j TV部 勉強会 MPEG-DASH向けの動画配信。 Viewers also liked
PDF
PDF
PDF
PDF
PDF
Tabc vol3 テクニカルアーティストを始めるにあたって PDF
PDF
PDF
PDF
PDF
PDF
PDF
第一回テクニカルアーティストラウンドテーブル・セッション PDF
GTMF 2016:Enlightenを使ったリアルタイムの大域照明 Enlighten PDF
『THE COMPREHENSIVE PBR GUIDE – Vol. 2: Practical guidelines for creating PBR ... PDF
『THE COMPREHENSIVE PBR GUIDE Volume 1: The Theory of PBR by Allegorithmic』私家訳版 Similar to ネットワークコマンド入力に対応したツール事例
PDF
「Tiのソケットで待ってる」Titanium Nagoya Chatroom Vol.2 PPT
PPT
PDF
PPT
PPT
PDF
PPTX
PPTX
PPTX
PDF
PPT
PPTX
ネクスト・ジェネレーションクラウドネットワーク~雲の中のリストラクチャリング~ PPTX
PPTX
PPTX
PPTX
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用 PDF
KEY
More from fumoto kazuhiro
ネットワークコマンド入力に対応したツール事例
- 1.
ネットワークコマンド入力に対応したツール事例
株式会社CRI・ミドルウェア
花房 宏通
本資料に記載の情報や画像などのコンテンツに対する著作権・知的財産権
は、株式会社CRI・ミドルウェアに帰属します。また、当社以外の会社名や製
品名は、それぞれ各社の登録商標または商標です。
各種コンテンツの無断転載・再配布は禁止します。
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
ネットワークの活用
• ネットワークというと敷居が高そうだけど…
–とりあえずローカル限定での通信から始めてみる
– .NET frameworkやPythonなどは、比較的簡単にネット
ワーク機能(Socket)が使える
• 相手にコマンド投げるくらいなら
– 通信部分だけプログラマにまかせてもOK
• 今回のテーマで言うネットワークの使用用途
– あくまでツールにアクセスする1手段
– マシン同士の通信ではなく、プロセス間通信が目的
PAGE 7
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
メリットとデメリット
• メリット
– UIと機能を分離できる
• UIのカスタマイズがしやすい
• 分離したものを、1つのツールとして見せるのも、別々のツールと
するのも自由
– Socketに対応してさえいれば、ツールや言語、プラット
フォームを問わず利用できる
• いろんなツールやスクリプトからツールにアクセスできる。
• バッチやスクリプトで、その場的なツールを気軽に作れる
– あるデータの組み合わせでシーンを作って、連番画像として出力す
るツールとか
PAGE 14
- 15.
- 16.
おまけ
• コマンドを送るPythonコード例
#ソケット作成(TCP)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
for i in range(10):
try:
# 接続(HOST=IPアドレス or ホスト名, CONNECT_PORT=ポート番号)
sock.connect((HOST, CONNECT_PORT))
return sock
except socket.error, e:
time.sleep(1)
~~~~~~~~~~~~~~~~
# 送信(message=文字列)
sock.send(message)
PAGE 16
- 17.
おまけ
• C#(.NET framework)の受信コード例
// 接続待ち準備
IPAddress addr = IPAddress.Parse("127.0.0.1");
var listener = new TcpListener(addr, CONNECT_PORT);
listener.Start(1);
listener.BeginAcceptTcpClient(new AsyncCallback(Accept), listener);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 接続許可
void Accept(IAsyncResult ar)
{
var listener = ar.AsyncState as TcpListener;
if (listener != null)
{
this.networkClient = listener.EndAcceptTcpClient(ar);
this.commandStream = networkClient.GetStream();
}
}
PAGE 17
- 18.
おまけ
• C#(.NET framework)の受信コード例
if(this.commandStream.DataAvailable == true)
{
byte[] receive_data = new byte[4096];
// 受信
Int32 size = this.commandStream.Read(receive_data, 0, 4096);
// 受信したデータ処理
~~~~~~~~~~~~~~~~~~~~~~~
}
PAGE 18
- 19.
まとめ
• パイプラインに組み込む事を前提にしたツール開発
を行いましょう
– シンプルでコンパクトなものは組み込みやすい
• ツールにネットワーク経由で制御できる機能を持た
せると、いろいろ便利
– UIの幅が広がる
• 言語や環境の枠を超えたツールの制御が可能になる
– 自動化しやすくなる
PAGE 19
- 20.