「tetuet版」の編集履歴(バックアップ)一覧に戻る

tetuet版 - (2008/06/06 (金) 21:17:10) の編集履歴(バックアップ)


tetuet版



成果物

  • P4U@tondol on Java の補助
  • P4U@tondol on Ruby を wxRuby でGUI化
  • P4U@tetuet on Ruby(ボツ)

履歴

  • 2008年06月05日 P4U@tondol on Java build 20080605 GUI強化版 公開
  • 2008年06月01日 P4U Java移行テスト1 公開
  • 2008年04月29日 P4U@tondol Version 0.01a GUI版 公開
  • 2008年04月27日 P4U@tondol Version 0.01 GUI版 公開
  • 2008年04月04日 Version 0.0.5 公開
  • 2008年03月31日 Version 0.0.4 公開
  • 2008年03月30日 Version 0.0.3 公開
  • 2008年03月29日 Version 0.0.2 公開
  • 2008年03月28日 Version 0.0.1 公開


P4U@tondol on Java build 20080605 GUI強化版

スクリーンショット

変更点

  • メニューバー、ステータスバーを追加
  • キーボードのみで操作出来るようにショートカットキーを設定
  • GridBagLayout で潔癖にレイアウト

ダウンロード


P4U(仮称) Java移行テスト1

スクリーンショット

概要

NetBeans のプロジェクトをそのまま圧縮したGUIしかやってないP4U(仮称)。
何かの参考になれば幸いですがたぶん使いものになりません。
jTextArea とかボタンが押された時の挙動は FileSender を参考にしました。

独り言

  • サクサク作れて楽しいGUIしかやってない。
  • レイアウトは既存のP2Pファイル共有ソフトを参考にした。
  • 結局フリーレイアウトが一番使いやすい。
  • mnemonic を設定すれば Alt を使ったショートカットキーの設定が出来た。
  • jTable を完全に黒背景白文字にするのは無理かも。
  • javax.swing.JTable に列を追加するのは javax.swing.table.DefaultTableModel を介さないと無理そう。IDE から列名とか編集出来なくなって不便。
  • ダブルクリックの検出はJTableのセルをダブルクリック を参考にした。

ダウンロード


P4U@tondol Version 0.01a GUI版

概要

P4U@tondol Version 0.01a にGUI機能を追加した。smples/sockets の構造を参考にしている。

ファイル構成

main.rb
実行用プログラム
app.rb
class P4UApp
gui.rb
class P4UGUI
define.rb
module P4UGUIDefine
client.rb
class P4UGUIClient
common.rb
class FileInfo, class String, class Wx::ListCtrl
setting.rb
class SettingDialog

問題点

P4U@tondol Version 0.01 と同じ。

ダウンロード


P4U@tondol Version 0.01 GUI版

スクリーンショット


概要

P4U@tondol Version 0.01 にGUI機能を追加した。XRC を使用していないので様々なバグから解放されたがソースが肥大化していて汚い。

問題点

  • ListCtrl にダブルクリックを検出するイベントが無いので、「項目を選択してからダウンロードボタンをクリック」のような不自然な操作をする必要がある。

ファイル構成

main.rb
実行用プログラム
app.rb
class P4UApp
frame.rb
class P4UFrame
client.rb
module P4UClient
common.rb
class FileInfo, class String
setting.rb
class SettingDialog

問題点

  • P4UClient をクラスとして使うのではなくモジュールとして使っているので汎用性が無い。
  • wxRuby を使うと Thread の挙動がおかしくなるので、Thread 内の処理(他のクライアントとの通信)を実行するとP4U(仮称)が固まる。対策としては wxClient.rb のように Wx::Timer と Mutex を利用する事が挙げられる。
  • Windowsの場合文字コードの問題で日本語が表示出来ない。(Mac OS から登録されたファイル名は全て問題無く表示可能)
  • StatusBar が表示されていない。
  • Wx::Dialog 上に Notebook を表示出来ないので設定ダイアログの製作が進んでいない。(P4U(仮称)の設定は main.rb 内の変数を直接編集して下さい)

ダウンロード


Version 0.0.5

スクリーンショット


概要

wxServer.rb は理解が困難だったため諦めた。
Version 0.0.3 の後継にあたるプログラムである。XRCを使用しCUI版の Hybrid_P2P クラスを完全に外部から操作する形になっている。
相変わらず XRC を使用すると Dialog が呼べなくなる問題は健在で、インデックスサーバにファイルを登録するときのファイル選択ダイアログが使えずに作業が進んでいない。
その他たくさん問題はあるが、ホストが localhost なら一応動作する。

問題点

  • 複数のホスト間でサーバー/クライアントの通信が出来ない
  • インデックスサーバーは一つで固定
  • ファイル名が同じ場合についての処理が考えられていない(ファイルのMD5を中心に処理されていない)
  • ファイルの所有者が複数いる場合に分割ダウンロードをするといった処理が無い (新たに upload するときは./index/内のファイルを全て削除してから実行して下さい)
  • Hybrid_P2P クラスとGUIの連携部分が雑で検索結果の表示がメチャクチャになるなどの不具合が生じている
  • XRC を使用すると Dialog (ファイル選択ダイアログ、設定ダイアログ(現在はフレームで代用)など)が呼べない(wxRuby自体のバグかもしれません)

ファイル構成

/dll
古いWindowsで実行した際に要求されるdllファイル
/index
インデックスサーバが持つファイル・所有者情報が格納される
/down
ユーザーがダウンロードしたファイルが格納される
/up
ユーザーがアップロードするつもりのファイルを格納する
main.rb
実行用
gui.rb
メインウィンドウ描写
setting.rb
設定ウィンドウ描写
socket.rb
HybridP2PクラスやTcpクラス
ini.rb
iniファイルを扱うためのクラス
setting.ini
INIクラスによって操作される設定ファイル
gui.wxg
wxGlade用の編集ファイル。メインウィンドウと設定ウィンドウの両方が含まれる
main.xrc
gui.wxgから出力されたXRCファイル
exerb_conv.bat
exerb 用のWindowsバイナリ作成用バッチファイル
main.exy
exerb_conv.batによって自動生成されたexerb用設定ファイル
setting.exy
exerb_conv.batによって自動生成されたexerb用設定ファイル

ダウンロード


Version 0.0.4

スクリーンショット

概要

XRC を使用すると Dialog が呼べなくなるのでソフト本体と設定機能を分離した。
思い通りに通信出来るように、プロが設計したと思われる wxRuby の samples/socket/wxServer.rb をGUIのみのP4U(仮称)に載せた。
インデックスサーバーや各ファイル所有者をクライアントの一つとして扱う事で理想通りの処理が可能だと思われるが未だ実装していない。

ダウンロード


Version 0.0.3

スクリーンショット

概要

XRC を使用してGUIを実装した。
Hybrid_P2P クラスとの結合を試みたがが思い通りに動かず失敗している。
後継バージョンとして Version 0.0.5 がある。
Download Version 0.0.3

Version 0.0.2

概要

XRC を使用せずGUI実装を試みたが部品のレイアウトなどが面倒すぎて挫折した。
今後 XRC 関連のバグで困ったときのためにソースを公開しておくが「ID の定義部は全て列挙」のような書き方なので samples を参考にした方が良い。

ダウンロード


Version 0.0.1

スクリーンショット

概要

GUI版の基礎となっている Hybrid_P2P クラスをCUIから操作している。

ファイル構成

/up
アップロードフォルダ
/down
ダウンロードフォルダ
/index
インデックスサーバー用ファイルリスト
main.rb
起動用ソース
class.rb
関数群とコマンド解釈

使い方

動作確認
$ ruby main.rb localhost 8888
サーバー
$ ruby main.rb [自分自身のIPアドレス、もしくはホスト名] [自分自身のポート番号]
クライアント
$ ruby main.rb [サーバーのIPアドレス、もしくはホスト名] [サーバーのポート番号]

サポートしているコマンド

upload [ファイルへのパス、ワイルドカード可]
search [ファイル名、ワイルドカード可]
get [ファイル名]
quit

ダウンロード


人気記事ランキング
目安箱バナー