2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」

Post on 18-Jul-2015

8.813 views 5 download

Transcript of 2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」

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で複製 以前は、代表宛に来たメールを全員に

印刷して配っていた。

Mail

自動受信

エリアス

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/札幌ワークス