日本語化のページも参考にしてください。
2003.04.11 (金) 22:13:04 <u*j*2*6*> BugTrackの一部をここに移動しました
2003.08.14 (木) 01:31:11 <Heracules> Redirectの仕様を若干更新。アドレス:ポート#13が正式な仕様の模様。
2003.08.21 (木) 04:54:04 <Heracules> Lopsterは、2番でログイン後、10203番コマンドと10112番コマンドを送信します。751を送ると752を返します。
2003.08.21 (木) 04:54:51 <Heracules> [10203] "+ERROR +BAN +CHANGE +KILL +LEVEL +SERVER +MUZZLE +PORT +WALLOP +CLOAK +FLOOD +PING +MSG +WHOIS +ANNOUNCE +BROWSE +MOTD +FRIEND +CHANNEL +REGISTER +VAR +ABUSE"
2003.08.21 (木) 04:55:08 <Heracules> 何を意味するのかはnap.txtにはなかったので不明です。
2003.08.21 (木) 04:56:54 <Heracules> AudioGnome?も10112を送るようです。
2003.08.21 (木) 05:05:08 <Heracules> 10203番コマンドの資料をみつけました(Slavaにも搭載されてました)。
2003.08.21 (木) 05:05:33 <Heracules> 10203 - set user mode [CLIENT]
2003.08.21 (木) 05:05:45 <Heracules> 書式:[-]{ALL,MUZZLE,BAN,KILL,PORT,WALLOP} [ ... ]
2003.08.31 (日) 07:54:26 <Heracules> Shift-JIS以外の2バイト文字を使わせたくない(外人の流入による文字化け等の防止)場合のための判別方法を追記。
2003.09.01 (月) 05:29:57 <えーと> Shift_JISの判定ですが、
2003.09.01 (月) 05:30:05 <えーと> LeadBytes?ってPublic変数がVCL(sysutils)にあるので、
2003.09.01 (月) 05:30:22 <えーと> それを使うと多少便利かもしれません。
2002.10.29 (火) 23:38:03 <u*j*2*6*> コンパイルしたら1時間おきにかたまる!!という人へ。Delphiのサービスパックいれてみてね
2002.10.29 (火) 23:40:20 <u*j*2*6*> http://www.borland.co.jp/delphi/del6up.html#del6up2
2002.10.29 (火) 23:41:41 <u*j*2*6*> http://www.borland.co.jp/delphi/del6up.html#del6rtl
2002.11.09 (土) 15:30:44 <Alan Smithee> DB書き出しのタイミング(だと思われる)でBANリスト等が巨大かつユニプロセッサだとやはり固まる。マルチプロセッサ環境や本家のSlavaNapでは固まらない。
2002.11.09 (土) 19:26:59 <u*j*2*6*> (・ロ・)ホ,('ロ')ホ--ッッ
2002.11.16 (土) 16:05:05 <Heracules> AthlonXP2000+ユニプロセッサ環境(Win2kSP3)では固まらないんですが?・・・なんででしょうねw
2003.04.10 (木) 15:38:39 <|-`)> 「サーバー」-「データベースの保存」 で再現するか試してみては?>Alan 少なくともDB保存時か否かははっきりするかと。
2003.08.01 (金) 19:45:30 <Heracules> わかると思うけど微妙なコメント:explorer.exe置き換えのときはタスクマネージャからプロセスを終了して置き換えてください。(あたりまえかw
2003.11.07 (金) 20:23:15 <u*j*2*6*> GPLの解釈ちがうかな?
2003.11.10 (月) 23:21:55 <Heracules> たぶんあってると思う・・・。ってことはDLLないと実行できないような場合はGPLの制約にしばられちゃうのか・・・。
2003.11.10 (月) 23:22:21 <Heracules> 別モジュール(同じメモリ空間で動作しない)ならば公開する義務はないとか。
2003.11.10 (月) 23:44:10 <u*j*2*6*> あ、前提を1コ忘れてた。ソース公開したくないdllには、GPLのソースが使われてないっていうのが前提ですね
2003.11.10 (月) 23:48:57 <u*j*2*6*> 別モジュールっていうのは下の4パターンのうち左下・右下のパターンのことでいい?
2003.11.15 (土) 21:20:11 <Heracules> たぶん、メモリ空間がいっしょじゃない(DLLとして別ファイル化し外に出している)ならば必須DLLでも問題ないと思う
2003.11.15 (土) 21:20:40 <Heracules> DLLにGPLコードが使われていないってのは当然の前提ですがw
2003.11.16 (日) 00:02:25 <u*j*2*6*> へー、そうなんだ
2003.11.16 (日) 00:44:20 <u*j*2*6*> DLLとして別ファイル化=メモリ空間がいっしょじゃないってことになるの?うーむ
2003.11.16 (日) 00:45:42 <u*j*2*6*> このあたりがポイントかな
2003.11.16 (日) 09:46:06 <Heracules> 完全な黒からグレーゾーンにもってけるって程度の微妙なとこかもw
2003.12.17 (水) 17:21:43 <Heracules> 一応コンパイルDelphi7でやってみたけど、安全でない型としてPointerがやっぱり警告でますね(一応動くと思うけど)。
2003.12.17 (水) 17:31:47 <Heracules> settings.pas書き加えようとしたらエラー(:が必要な場所に識別子がある云々)が出る(settings.pasを閉じた状態ではコンパイル可能)。
下のような感じでDelphi7のVersion判断をRX.INCで定義すればOKのようです(試してないのでうまくいったら教えてください)
{$IFDEF VER150} { Borland Delphi 7.0 } {$DEFINE RX_D3} {$DEFINE RX_D4} {$DEFINE RX_D5} {$DEFINE RX_D6} {$DEFINE RX_D7} {$WARN SYMBOL_PLATFORM OFF} {$WARN UNIT_PLATFORM OFF} {$ENDIF}
毎回のイベントごとに誤差がおおきくなっていく
高精度タイマ
(Delphi-ML:71547) Re: 計測時間間隔が重要
http://www.namakoworld.com/lowtech/d6tips/dtips4.htm
http://homepage1.nifty.com/ht_deko/tech002.html#tech021
引用元:http://www.zoo.co.jp/solution/tech/delphi/
Delphi 6 は Kylix との互換性のため、フォームファイル(.dfm ファイル)を UniCode で保存します。これを Delphi 5 同様に Shift-JIS で 保存するには次のようにします。 レジストリエディタを起動します。 HKEY_CURRENT_USER\Software\Borland\Delphi\6.0 とたどります。 [編集(E)] - [新規作成(N)] - [キー(K)] を選び、 "FileFormat" という名前のキーを作成 します。 [編集(E)] - [新規作成(N)] - [DWORD 値(D)] を選び、 "DFMFormat" という名前の DWORD 値を作成します。値 は初期値の 0 のままにします。 これでフォームファイルが Shift-JIS で保存されるようになります。 ただし、Windows 95 + Delphi 6 SP2 の環境では フォームの 2 バイト文字が化けるバグがあります。 Windows 95 で Delphi 6 をお使いの方は SP3 が出るまでは SP1 止まりにしておきましょう。
ALTをおしながら選択すると矩形選択できます
情報源:
http://cyberfield.virtualave.net/
http://www.dr-hoiby.com/TrayIconIn256Color/index.html
Windows2000では、タスクトレイアイコンの表示色が16色なので、
256色以上のアイコンがきれいに表示できません。
が、Explorer.exeをバイナリエディタで書き換えると、256色にできます。
ここではWin2000sp3のものを書き換えます。
name : explorer.exe size : 242960 from : Windows 2000 build 5.00.2195 SP3 (JP) ver : 5.0.3502.5321 CRC : 07B4 CRC32: 34F4E3FD
Offset 0x1CDE : 01 -> 11 Offset 0xD7E4 : 01 -> 11 Offset 0x14CE9 : 01 -> 11 Offset 0x14CFA : 01 -> 11
書き換え後のCRCは622D97B9(CRC32)になります。
これをオリジナルのExplorer.exeと置き換えればOK
置き換えがうまくいかなかったらコメントください。
Win2000sp4の場合はつぎのとおりです。
ファイル名 : Explorer.exe サイズ : 237 KB (243,472 バイト) バージョン : 5.0.3700.6690 CRC : 7679 88EE : 01 → 11 14E25 : 01 → 11 14E36 : 01 → 11 書き換え後のCRC : 5795
まず、通常のチェックを入れる。その後、Shift-JISを有効にする場合、 以下の範囲かどうかをチェックする。 Chr(129)..Chr(159),Chr(224)..Chr(234)でShift-JISコードの2バイト文字は 始まるので、この範囲の文字の場合は次の1バイトをチェック対象からはずす。 それ以外の場合は、 不正ということにすればよい。
SlavaNapサーバーリンク資料(NET_BUILD=19) 2003.08.09 usj12262@hotmail.com
NET_BUILD=19のとき 920(MSG_CLIENT_BEFORELOGIN) 書式: 00 8000(MSG_SRV_LOGIN)[CLIENT] 書式: "<host>" <port> "<version>" "<net_build>" <handle> "<console>" "<cons_reg_user>" "<conslist>" "<handlelist>" 8001(MSG_SRV_LOGIN_ACK)[SERVER] 書式: "<version>" <handle> <console> "<cons_reg_user>" 8008(MSG_SRV_SYNCCH)// channel sync 書式: <channel> <n> <topic> <limit> <level> <state> 備考: <state>は数字で指定する 8009(MSG_SRV_VOICE)// voice user in channel (done by server) 書式: <channel> <nick> <handle> <IsOP(1|0)> <IsForwardAll(1|0)> 8010(MSG_SRV_OP)// op user in channel (done by server) 書式: <channel> <nick> <handle> <IsOP(1|0)> <IsForwardAll(1|0)> 8011(MSG_SRV_SYNCSRV)[CLIENT]// sync linked server 書式: <host> <port> "<version>" handle "<console>" <myhandle> <incoming> "<reg_user>" 8012(MSG_SRV_SYNCUSER)// sync user 書式: "<nick>" "<pass>" "<soft>" "<level>" "<ip>" "<dataport>" "<totalup>" "<totaldown>" "<ul>" "<dl>" "<maxup>" "<queue>" "<speed>" "<shared>" "<server>" "<state>" "<lastseen>" 8013(MSG_SRV_PUBLICSYNCUSER)// sync user (sent to all servers) 書式: "<nick>" "<pass>" "<soft>" "<level>" "<ip>" "<dataport>" "<totalup>" "<totaldown>" "<ul>" "<dl>" "<maxup>" "<queue>" "<speed>" "<shared>" "<server>" "<state>" "<lastseen>" 8017(MSG_SRV_UPDATEUSER)// update user data 書式: "<nick>" "<totalup>" "<totaldown>" "<up>" "<down>" "<maxup>" "<queue>" "<speed>" "<shared>" 8023(MSG_SRV_SERVERBANCLEAR)// clear bans 書式: empty 8024(MSG_SRV_SERVERBANSYNC)// sync ban 書式: <nick!ip> "<admin>" <bantime> <expire> <lastattempt> "<lastnick>" <tries> "<reason>" 8025(MSG_SRV_REGISTEREDCLEAR)// sync regisreations start 書式: empty 8026(MSG_SRV_REGISTEREDSYNC)// sync registrations 書式: "<nick>" "<pass>" "<level>" "<totaldown>" "<totalup>" "<lastip>" "<lastseen>" "<state>" "<createdtime>" "<createdby>" "<lastsetby>" 8029(MSG_SRV_ALIAS)[CLIENT]// server alias 書式: <host> "<alias>" "<1|0>" 8031(MSG_SRV_BLOCKLISTCLEAR)// clear blocked files list 書式: empty 8032(MSG_SRV_BLOCKLISTSYNC)// sync blocked files list 書式: <blockword1> [blockword2 [ blockword3 [...]]]
I.接続元:サーバー窓で接続ボタンを押す TServer.Connect CreateConsoleList//ネットワークのコンソール・サーバーハンドルの リスト(自分を含む)を更新 Self.thread:=TServerThread.Create(Self) II.接続元:サーバー接続用スレッド開始 TServerThread.Execute srv.Exec(920,'00');//MSG_CLIENT_BEFORELOGIN=920 8000を送信 III.接続先:メインスレッドでサーバーコマンド8000番を受けとる TMainThread.Execute TMainThread.CheckServers TServer.Flush TServer.Receive ProcessServerCommand(Self) ProcessRemoteUserCommand// gcmd.id=8000の場合 ProcessCommand Handler_ServerLogin// ここでNET_BUILDのチェック Handler_LinkServer 800を送信 TServer.Flush CompleteSyncServer(srv,1)//1なら8000を受けた側。0なら8000を送った側。 8011,8029を送信 SyncServers(srv,srv2) 8011,8029を送信 SyncServers(srv,srv3)(db_servers.count繰り返し) 8023,8024を送信(srv.incoming=Trueの場合のみ) 8031,8032を送信(srv.incoming=Trueの場合のみ) 8025,8026を送信(srv.incoming=Trueの場合のみ, 8026は登録ユーザーの数だけ繰り返し) CompleteSyncUser(srv,user2) if srv<>nil then 8012を送信 else 8013を送信 UpdateUser(user2,srv); 8017を送信 8008を送信 WriteAllServersEx(srv,MSG_CLIENT_JOIN, user2^.username,ch.channel)//400 if ch.Operator(user2) then 8010を送信 else if (chModerated in ch.state) and StrHash_FindString(ch.voices, user2^.username,true) then 8009を送信 214を送信 SERVER_MAX_RECEIVE_RECURSE(=10)回までReceiveを繰り返す TServer.Flush
Redirectサーバは、使用するポートをあらかじめListenしています。 クライアントがRedirectサーバにTCP接続をかけます。 Redirectサーバはサーバのアドレスをクライアントに 「最初に接続したTCPの接続」で送信します(書式:「サーバアドレス:ポート#13」) Redirectサーバ側からTCP接続をクローズします。 クライアントは送信されてきたアドレスに接続を行います。 Redirectが送信するアドレスはホスト名でもIPアドレスでもかまいません。 なお、WinMXでの「OPENNAP***(REDIRECT)」は、 OPENNAPのバージョンに対する互換のことなので、どれでもいいかと(SlavaNapの場合)
WinMX の仕様を調べたいのですが資料が少なく、ここでお聞きしてもかまいませんか。 リモートキューの方法とログイン時の挙動はこんな感じでOKでしょうか。by heavy_baby
リモートキューってあんまり確かめたことないけど、
キューの限界のところって、たしかにこういうかんじかもしれないですね!
2.6から3.3へはキューがいれられないというのを聞いたことがあるのと、
WantQueueは相手によって送られないこともあるとも聞いたような
203 download request [CLIENT] 620 queue limit [SERVER] <nick> "<filename>" <n> if <n> = 0 then "busy queueble" 205 private message to another user [CLIENT] <nick> "//WantQueue" 203 download request [CLIENT] 620 queue limit [SERVER] <nick> "<filename>" <n> "queued at <n>" ダウンロード可能かの確認は一定時間ごとに 205 private message to another user [CLIENT] <nick> "//WantQueue" 203 download request [CLIENT] を発信するようです。(thx! #Rufuさん)
203 download request [CLIENT] 620 queue limit [SERVER] <nick> "<filename>" <n> if <n> > 999 then "busy queueble" 205 private message to another user [CLIENT] <nick> "//WantQueue" 203 download request [CLIENT] 620 queue limit [SERVER] <nick> "<filename>" <n> "queued at <n>"
2 login [CLIENT] 3 login ack [SERVER] 621 message of the day [SERVER] 214 server stats [SERVER] 870 add files by directory [CLIENT] 208 hotlist [CLIENT] 209 hotlist [SERVER] 326 clear ignore list [CLIENT] 326 clear ignore list [SERVER] 700 change link speed [CLIENT]
ping に対して pong で応答する MD5は32バイトの小文字英数 5分おきにキューの更新をする 共有ファイルのパスにコロンを含まない
http://tmp.2ch.net/test/read.cgi/download/1032973542/509
509 :ナナシサソ :02/10/21 17:33 ID:pAm9bIOw 3.3と2.6のログイン時のログとってみますた コマンド番号とその詳細はSlavaNapに入ってるnap.txt見るなりで このように違いがあるので、クライアント申告偽っても弾ける可能性あり 改造してる人頑張って(漏れはコーディング出来ないので) WinMX3.3とWinMX2.6の違い(ログイン時) 3.3 Hotlistはコマンド207で処理している Received command [207] "USER2" (USER1, WinMX v3.3, 127.0.0.1) Sending command [301] "USER2" (USER1, WinMX v3.3, 127.0.0.1) 2.6 Hotlistはコマンド208で処理している Received command [208] "USER2" (USER1, WinMX v2.6j, 127.0.0.1) 無視リストの処理をしている(コマンド326) Received command [326] "" (USER1, WinMX v2.6j, 127.0.0.1) Sending command [326] "0" (USER1, WinMX v2.6j, 127.0.0.1) 回線速度申告の処理をしている(コマンド700) Received command [700] "1" (USER1, WinMX v2.6j, 127.0.0.1)