2008年01月31日 04時56分11秒
perlで書いたIPメッセンジャークライアント簡易版の .NET書き換え版。
.NETへの書き換えはさらに簡潔になるみたいです。
JScript.NET というマイナーなものを選択しましたが、C#その他へはすぐ書き換えできると思います
※覚書にて正確性の保証はない
.NET Framework 1.1 が入っているなら、どこかに JSC.EXE がインストールされているはずです。これが JScript.NET のコンパイラです。ipmsg.js をCドライブ直下に保存したなら、
C:\> JSC.EXE ipmsg.js
でコンパイルすると、 ipmsg.exe が生成されます。フルパス指定でないとJSC.EXEが呼び出せないかもしれません。
perl版とほぼ同じです。以下のコマンドラインでメッセージを送ります。
C:\> ipmsg.exe 送り先IPアドレス 送り主ニックネーム メッセージ文字列
ただし、標準入力からの入力は入れていませんので、
C:\> type | ipmsg.exe 送り先IPアドレス 送り主ニックネーム メッセージ文字列 [CTRL]+[C]
のような操作はできません。また、当然ですが .NET Framework 1.1 のインストールされたマシンでのみ動きます。なので、Linuxの.NET CLR が動けばこれも動くかもしれないです。
ipmsg.js と名称をつけてください。
import System; import System.Net; import System.Net.Sockets; import System.Text; var args = Environment.GetCommandLineArgs(); var toPort = 2425; var toHost = args[1]; // 第1引数 送信先アドレス var myname = args[2]; // 第2引数 名前 var message = args[3]; // 第3引数 メッセージ var myhost = Dns.GetHostName(); // 送信元ホスト名称 var sendstrs = "1:100:"+myname+":"+myhost+":32:"+message; var sendtext : byte[] = System.Text.Encoding.GetEncoding("shift_jis").GetBytes(sendstrs); var udpClient =new UdpClient(); udpClient.Connect( toHost, toPort ); udpClient.Send( sendtext, sendtext.length ); udpClient.Close();
あまりに簡単に出来すぎだと思った(^^;