bbz

マルチスレッド

_
previous | next | edit
1: Mon Oct 27 12:13:05 2014
マルチスレッド処理するプログラムあるいはスクリプトを書きたい。

とりあえず今必要なのは、複数の宛先にpingを打つことだ。

expingとか、バッチファイルを書いて複数起動するとかでできないこともないのだが、

落ちたら通知するとか、統計を表示するとか、ログをとるとか、時刻を表示するとか、
複数の画面を一発で起動するとか、やりたいから。

一番最初にやろうと思ったのはdelphiである。

delphi2007 for win32で、indyコンポーネントを使えば、windowsで動くGUI付のものが簡単にできる。

2: Mon Oct 27 12:27:03 2014
だが、indyのコンポーネントの使い方がよくわからなかったりしたので、
ほかの方法も検討した。

C#

サンプルがあったが、よくわからない。


powershell

windows7には標準でインストールされている。
使ったことはなかったが聞いたことはあった。
できそうだが、使いにくい。

java

ネットワークプログラミングならjavaだろう、と、
SDK(JDK?)やらeclipseやらをインストールして書いてみたが、
よくわからないエラーになって頓挫。


visual studio

expressとかいうバージョンなら無料のはず。
pingを打つくらいならexpressでできるだろう。
が、visual studioは過去にさわったことがあるが、
delphiみたいに簡単ではないのを知っている・・・。


perl

fastpingとかいうモジュールの情報を見つけたのだが、
どうも怪しいソフトのようで、CPANで「この作者のモノは使わないほうがいい!」
というコメントがついていたりして、ppmでインストールもできなかった。

が、pingの打ち方、マルチスレッドの書き方はなんとなくわかったので、
頑張ればいけそう。

3: Mon Oct 27 12:30:00 2014
が、結局 delphiが一番目的を満たすのに適していそう。

perlだとログを書いてそのログをどこかで表示させねばならない。

linuxの tail -f みたいな。

cygwinを入れるとかすればいいのか。

でもやっぱりめんどくさい。

delphiならexeファイル一個でできる。


まあ、perlのマルチスレッドは書けるようにはなっておきたいので、やることはやる。
4: Tue Oct 28 04:34:43 2014
test
5: Tue Oct 28 12:06:29 2014
http://stackoverflow.com/questions/12858551/delphi-xe2-indy-10-multithread-ping
6: Thu Oct 30 07:27:32 2014
delphiで作り始める。

が、マルチスレッドとかの以前に問題が立ちはだかった。

それは、名前解決できないホスト、arp解決できないホストにpingをうとうとすると、
例外が発生しまうことだ。
8: Thu Oct 30 07:40:10 2014
indyにバグがあるみたい。

googleで検索しても、日本語の情報だとぜんぜん出てこない。

日本語以外の情報も探すと出てくるが、

おそらくもうindyはobsoleteだ。


さっきの例外が発生する場合は自分でエラーにしないといけない。

9: Fri Oct 31 04:21:22 2014
delphiはborlandが撤退したというか、売却されたというか、よくわからないが、
今はエンバカデロテクノロジーズという、ほかに何をやったり売ったりしているのか
よくわからない会社が販売している。

そして、それまで私が使っていた2万前後で使えるパーソナル版みたいなものがなくなってしまい、
一番安くても5、6万するようになって、買わなくなっていた。

が、今確認すると、starterというバージョンがあって、2万円くらいである。

これなら買おうかな、と思っているが、

一応トライアル版を使ってみる。
10: Fri Oct 31 04:27:14 2014
http://msdn.microsoft.com/ja-jp/library/system.net.networkinformation.ping(v=vs.110).aspx
11: Fri Oct 31 12:11:35 2014
delphi xe7の評価版をインストールして使ってみた。

indyのicmpコンポーネントのバグはなおっている。

ヘルプもちゃんと表示できる。


評価版はarchitectのようだが、これは買うと16万円とかするものだ。

今調べたら、starterにもindyは含まれていた。

買おう。

^
previous | next | edit