2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
TRANSCRIPT
SIN/札幌ワークス
札幌ワークスというホームページを中心に、フリーソフトや技術情報を発信させて頂いております。
ハンドル SIN/古谷誠進
Twitter @furuya02
仕事 某社でシステムサポート
開発系技術に関する学習と研究
.NET関連が多いですが、それ以外も
概ね毎月1回
おやつタイム
ASP.NET MVC 3 & jQuery "超" 入門 ハンズオン ~
Ezotter を作ろう ~
プログラマのためのOracle DBA 入門
RSpecについて / Rails入門2
ゼロからはじめるWindows Phone、Kinect連携
とことんF#ぷよぷよ! - F# + XNAによるゲームプログラミング入門
Windows 8時代のUXを支える非同期プログラミング
WF ハンズオン
XNA で始める HiDef グラフィックス入門
コンピューターに萌えを教えてみたよ
人気順に体験する初めての HTML5 開発
Ruby1.9 + Rails3.1 + Heroku で勉強会の参加申し込みサイトを無料で手軽に公開する方法
『スマートフォンサイト構築のノウハウ』~ ジニアス、jQuery Mobileはじめました!
暗黒面に堕ちた単体テストプログラマ
http://clr-h.jp/
開発系技術に興味をお持ちの皆様の
ご参加を心よりお待ちしております。
BlackJumboDogとは
利用事例の紹介
セットアップの勘所
改造
Windowsで動作するフリーの簡易サーバ
Web/メール/プロキシ/FTP/DNS/DHCPなどのサーバを簡単に設置することができます。
http://blackjumbodog.codeplex.com/
zip 及び msi (インストーラー)の2種類
デフォルトでC:¥BlackJumboDogに展開
BJD.exe 本体
BJD.exe.config アプリケーション構成ファイル
Option.def 設定のデフォルト値
*.ini 設定保存ファイル(削除で初期化)
*Server.dll 各種サーバ機能 (14種類)
*.Log ログファイル
named.ca ルートサーバ一覧(DNS用)
examlpe.pfx SSL証明書サンプル(Web用)
FtpServer.dllだけにすると・・・
「bjd.exe 接続先アドレス」で起動
別のPCから全て操作(遠隔制御)が可能
IPv6がインストールされていれば、IPv6でbindできます
IPv4とIPv6のデュアルスタックも可能
サーバ・クライアント間のデータを
リアルタイムに表示する
メニューからサービスの登録・起動が可能
SMTP
192.168.0.1:25
「トレース表示」を使用すると
単純に送信の成否を確認するだけでなく細部の送受内容が確認(デバッグ)できる
「メールボックス」を使用すると
サーバ蓄積状態のまま内容を確認したり、クリア(削除)できる。
HTTP/SSL
WebAPI
実サービスの使用は、必要最小限が望ましい
google.ne.jp
(実サーバ)
192.168.0.1
(試験用サーバ)
google.ne.jp
192.168.0.1
DNS
BlackJumboDog
DNS/FTP/SMTP/POP3 etc..
自動受信/エリアス
FTP
Web/Mail
http://192.168.0.1/
Proxy 192.168.0.100
2408:1c6::5888:bda2
192.168.0.1
V4
V4
V6
Proxy
192.168.0.1:8080
URL制限・ワード制限
ProxyMail
192.168.0.1:25
192.168.0.1:110
Aliasで複製 以前は、代表宛に来たメールを全員に
印刷して配っていた。
自動受信
エリアス
HTTP Proxy
192.168.0.1:8080
Localhost:8080
Tftp
192.168.0.1
サーバを使用する(必須)
ACL設定する(必須)
サーバごと必要なオプションを指定
STEP3の設定で、必須のものが不足している場合は、明確なエラーが表示されますので、安心して使用してみて下さい。
STEP1
STEP2
STEP3
STEP1
xxxサーバを開始するにチェック
当該オプションを開く
STEP2
デフォルトでALL Deny
誰も接続できません
1.各サーバごとオプションの最後のページ「ACL」
2.アドレスを追加
3.指定のみを「許可」/「禁止」に設定する
Webサーバ
ドキュメントルート、CGI、SSI、WebDAV、alias、認証 …
FTPサーバ
ユーザ作成、バナーメッセージ、SYST、仮想フォルダ
DNSサーバ
ルートキャッシュ、再帰要求、SOAレコード、リソース追加…
HTTPプロキシサーバ
上位プロキシ、キャッシュ、URL制限、コンテンツ制限…
DHCPサーバ
配布するアドレス範囲、DNSサーバ、リース時間、MAC制御…
STEP3
必須は赤字のみ、その他は、取りあえずデフォルトのままでOK
現在は、「Web」と「トンネル」のみ
1つのDLLで複数のサーバが起動できるものは、
「サーバの追加と削除」が必要
「追加と削除」で複数のサーバ
を作成できる
メニューが増減する
http://www.ssapporoworks.ne.jp/spw/bjd/support.html
blackjumbodog-12924.zip
解凍して、BJD.slnをダブルクリック、F5で再構築できます
テストプロジェクトは、nunit.feameworkを参照しているのでNUnitが無い場合、エラーとなります。
エラーとなるTestプロジェクトを
全部削除する。
BJDの構築には影響なし
NUnitをインストールする
構築(F5)すると「SAMPLEサーバ(Z)」を見つけることができます。
SampleServer.dllを配布していないので、
バイナリ配布物では見えません
ソースコードにはSampleServerというプロジェクトが存在します。
OneOption
オプション基底
Option
オプション
OneServer
サーバ基底
TreadBase
スレッド起停
Server
サーバ
ListOption
オプション一覧
karnel
BJDカーネル
-------------------
+o : ListOption
+s : ListServer
ListServer
サーバ一覧
*.dllを検索し
OneOptionを列挙する
ListOptionを元にOneServerを列挙する
//Server.cs
partial class Server : OneServer {
//接続毎
override public void OnSubThread(SockObj sockObj) {
TcpObj tcpObj = (TcpObj)sockObj;
//切断
}
}
1接続単位の処理をここで記述する
接続先(クライアント)との処理はsockObjを使用する
まずは、ここから追いかけて見て下さい
SIN/札幌ワークス