- PR -

JavaのSocket通信でWINDOWSのNET SENDコマンドを再現できますか?

投稿者投稿内容
TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2005-05-19 17:32
みなさん、こんにちは

JavaのSocketなどのネットワーク関連のクラスを使用して、WindowsPCにNET SENDを送りたいのですが出来るものなのでしょうか?
プロトコルに関してはあまり知識がありませんが、WindowsのNET SENDコマンドと同様の通信をJavaで再現できれば可能なのではないかと考えていますが、どのようにしたらいいかが分かりませんでした。
また、実行環境はUNIX等でも出来るように、RuntimeクラスでOSコマンドを直接実行することはやりたくないと考えています。
どなたかご存知の方がいらっしゃれば教えてください。
よろしくお願いします。
未記入X
大ベテラン
会議室デビュー日: 2005/05/19
投稿数: 136
投稿日時: 2005-05-19 18:01
直接の回答ではありません。申し訳ない。質問の意味は

Windowsのメッセンジャーサービスのnet sendコマンドを
Javaでエミュレートする方法があるかどうか知りたい

ということでよろしいですか?
「何をするために」今回の質問のような案件になったのか、その辺を書いて頂けると幸せになれるかもしれません。
IPMessenger等で用が足りるならそれに越したことはないですし。
TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2005-05-19 18:15
説明不足で、申し訳ありません。

>「何をするために」今回の質問のような案件になったのか、その辺を書いて頂けると幸せになれるかもしれません。

やりたいことは、現在solarisで開発を行なっている社内WEBシステムで、障害などが起こった場合にNET SENDで直接、開発担当者PCにポップアップを出す事や、バックグラウンド処理の失敗などを各ユーザに通知するために使いたいと考えております。
メールでエラー内容を飛ばしているのですが、即時に通知できWindows標準の機能で実現できる方法としてNET SENDがもっとも効果的なのではないかと考えました。

現在の環境
OS solaris8
J2SE 1.3.1
K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-05-19 22:00
NBT(NetBIOS Over TCP/IP)でよいのであればNetBIOSのパケットをJavaで作ることが出来れば可能かもしれませんね。
OSコマンド使いたくない(Pure Javaでやりたいのならば)それ以外に方法なさそうな気がします。細かく調べたわけではないので確実とはいえませんが。
じじ
会議室デビュー日: 2005/01/04
投稿数: 10
お住まい・勤務地: 大田区
投稿日時: 2005-05-20 10:54
JNIでNetapi32.libのNetMessageBufferSendを呼び出すのも駄目なんですかね?
これならC#でつくった方がよさそうですが、、

コード:
NET_API_STATUS NetMessageBufferSend(
    LPCWSTR servername,    // 実行対象のリモートサーバー
    LPCWSTR msgname,      // 送信先のメッセージエイリアス
    LPCWSTR fromname,     // メッセージの送信元
    LPBYTE buf,           // メッセージテキストを保持しているバッファ
    DWORD buflen          // バッファサイズ
);

TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2005-05-20 12:16
Netapi32.libについて少し調べて見たのですが、JNIで呼び出すことが出来れば問題はないのですが、Netapi32.libはWindows以外で使用できるのでしょうか?
Netapi32.libのUNIX(solaris8)用のライブラリはあるのでしょうか?

また、Netapi32.libはどのように入手すればいいのでしょうか?
Windows標準のライブラリなのかと思い、私のPCのWindowsフォルダ内を検索してみっましたが、存在しませんでした。

本来の目的はPureJavaで作成して、環境に依存せずに使用できるものを作りたかったのですが
現在、少なくともUNIX環境上で実行できるものを作りたいと考えています。
じじ
会議室デビュー日: 2005/01/04
投稿数: 10
お住まい・勤務地: 大田区
投稿日時: 2005-05-20 13:42
Netapi32はNTであれば下記が利用できるはずです。
C:\WINNT\system32\NETAPI32.DLL
またよくは知りませんがUNIXなどからは使えないと思います。

送信元がUNIXで受信がWINであるならば
WINマシンを一台サーバー役にして
UNIXからソケット等でサーバーに送信
  ↓
サーバーはNetapi32でNETSENDに変換して各PCに送信

というかたちで実現できるのではないでしょうか
TSUYOSHI
常連さん
会議室デビュー日: 2004/09/02
投稿数: 32
投稿日時: 2005-05-20 16:58
Netapi32は自分のPC(Win2000)にもちゃんとありました(^^;
すみませんでした。

Windowsサーバを使用してNET SENDを送る方法は、最終手段として考えていましたが
出来ればUNIX上から直接送りたいと考えています。

スキルアップ/キャリアアップ(JOB@IT)