目次

IPメッセンジャーへメッセージを送る .NET版

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 と名称をつけてください。

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();
 

あまりに簡単に出来すぎだと思った(^^;