U⁄A LABO

RSS

SEARCH

AUTHOR

  • KNOCKKNOCK (10件)小遣い2万円のフラッシュデベロッパー。
    帰りが遅いのにキレる嫁をだましだまし制作中・・・。

  • TAKAIW (13件)フラッシュデベロッパー。遊びでゲームを作るのも好きです。外見に似合わないイラストを描くのも好きです。とにかく作るのが好きです。

  • CHIKATHREESIX (8件)メタル界のフラッシュデベロッパー。またある時はメタルギタリスト。オーサリング中もヘッドバンギングは絶やさない。

  • YANBOU (6件)犬と猫で、家が毎日運動会のフラッシュデベロッパー。
    ビールから発泡酒へ変更で節約中。

  • AKUZE (2件)2003年からユナイティアに寄生しているフラッシュデベロッパー。
    シルクドソレイユとカナダが好き。

  • DECO-DEKAI (1件)ビートダウンパートでご飯何杯も食べられます。
    ハードコア・テクニカルディレクターを目指して日々精進。

CATEGORY

HOME  >  ネットワークアプリ+Flashに挑戦

2009.07.15 TAKAIW

ネットワークアプリ+Flashに挑戦

Webの仕事をしているのに実はネットワークには
疎かった...。こういう人ってかなりいるとは
思います。
パケット、プロトコル、レイヤー、TCP/IP...
聞いたことがあるけど、そらで詳しく説明できる人は
フロントの制作ではあまりいないのかもしれません。
(自分は都度調べてすぐ忘れがちです...)


ちょっと前ですが仕事上、Flashでサーバー上の
JavaアプリとSocket通信をしないといけない
案件をすることになりました。
未知の世界なので不安2割、楽しみ8割で挑みました。
Flash側としてはSocketクラスを作って、
指定のイベントをaddEventListerして...と
URLLoaderみたいなノリで意外にカンタンに
できます。ただ、その案件はSocket通信+SSLだったので
一筋縄ではいきませんでしたが。
(でも、パケット盗聴、なりすましとか考えると、実務レベルでは
SSLにしないといけないんだろうなと実感)
さらにセキュリティーポリシーが追い討ちをかけて
私と、連携先のSEさんを苦しめました...

→ソケットポリシー


でもパケットキャプチャーソフトをデバッグ用に使って
何とかつなぐことができました!
パケットキャプチャーは通信ごとのデータを
モニタリングしてくれます。暗号化なしのパスワードとか
何でも分かってしまいます。
暗号化って必要なんだなと肌で実感してしまいます。

ぱけ見え【Protocol_EYE】 フリー版

下図のように通信ごとにパケットが丸見えです。


クリックで拡大します。


その案件はある事情がありまして、最後までお手伝い
できなかったのですが、それを契機に自分で一回、
ネットアプリを構築してFlashとつなげてみようと思いました。
Java経験がありましたし、自宅の本棚を探ると、
Javaネットワークプログラミングの本が!

平成15年とかなり昔の本ですが、
これで作れる!と思わせましたね。当時と今とでは
私の中でのオブジェクト指向の理解がかなり違うので
結構イケルと思いました。

・Javaネットワークプログラミング

・Javaネットワーク&ストリーム完全制覇

※前述しましたが、両方ともJavaの本です。

 


もっと新しい本買ったほうがいいかもしれないと思いましたが
とりあえずこれを使って、ネットアプリを作ろうと思います。
負荷とかはとりあえず考えないで。
最終的にはLinuxに入れられるように。


まず最初に前述のパケットキャプチャーソフトを使おう!と思い、
早速自宅のVistaにインストールしました。


......が
ぜんぜんトレースされない!会社ではできたのに!

別の有名な海外のソフトを調べてDLしてみました。

・Wireshark
http://jp.downpanda.com/wireshark-19423.html

でも駄目でした。


詳しく調べるとVistaって権限とか厳しいので
管理者権限で起動しないといけないのです。
下図のように、わざわざ右クリックして起動しないといけないようです。

管理者権限で起動し、適当なページを閲覧したら、
どんどんキャプチャーされていくことが確認できました。
(しかも上記の2つのソフト両方です!)


前述セキュリティーポリシーによって
FlashPlayerがSocketインスタンス作成しconnectしたら
"<policy-file-request/>"という文字列を
接続先のport843に強制的に投げます。
(パブリッシュプレビューでは投げません)

その文字列をキャプチャーできるかなと思い、
早速JavaでFlashPlayerからport843で受けるプログラムを
書いて、プロンプトで実行しておきます。
そして、ブラウザ上でSocketをconnectするFlashを実行。

......でも、出てきません。
同IP同士のパケットはキャプチャーできないみたいです。
理解度が低いせいかもしれません。
2つのソフトで行いましたがぜんぜん出てこないですね。
何かいい方法があるのかな。さすがに2,3時間では
見つからなかったか...。やっぱりテキストフィールド
つくってトレースするか...。


進展がありましたら、
さらにレビューさせていただきます。


 

CATEGORY