• ベストアンサー

ネットワークプログラミングについて

TCP/IPのプログラミングについて教えてください。 UDPの特定ポートを使用中の状態にする(Listening)にするサービスを作成したいと思っております。 なぜこのような事をしたいかと言いますと・・・。 あるソフトを使用するのに、特定のUDPポートが空いていると使用できないのです。そのポートを他のソフトまたはサービスで使用していると、他の空いているポート「49152」を使用しにいき、うまく使えるようになります。特定のUDPポートを使用できないようにできればいいのですが、そのような方法も分らないので、簡単なサービスを作れればと思っております。 ご存知の方おられましたら、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

http://dondie.de/dbdats/tools/NC.EXE 上記ツール(Windows版)をダウンロードして適当なフォルダに置き,次のようにコマンド入力(使用中にしたいUDPポート番号が162の場合)。オプションの意味は nc -h で調べてください。 nc -l -p 162 -u

heposuke
質問者

お礼

すみません。初歩的なミスでした。 自己解決できました。 ありがとうございました。

heposuke
質問者

補足

回答、ありがとうございます。 早速試してみたのですが、「NC.EXEは有効なWin32アプリケーションではありません」と言われてしまいます。 対処方法はありますでしょうか。 初心者で申し訳ありません。

その他の回答 (1)

回答No.1

PerlでもPythonでもCでもJavaでも、socket関連の関数群を利用すればそんなに苦労せずに作れますね。 UDPでは socket() して bind() するだけでよいので、あとはプログラムが勝手に終わらないように無限ループ + sleep() とか recvfrom() とか書いておけば良いでしょう。 http://www.ne.jp/asahi/hishidama/home/tech/socket/index.html 具体的な関数名や引数の内容は言語によって違うので割愛しますが、妙な大文字は単なる定数ですのであまり深く考えずに書いてしまってください。 Perlなら http://x68000.q-e-d.net/~68user/net/udp-2.html のようになります。上の方に use Socket; を記述する必要はありますが、bindする部分は二行で済みます。

参考URL:
http://www.ne.jp/asahi/hishidama/home/tech/socket/index.html
heposuke
質問者

お礼

ありがとうございます。 自分もPerlがいいんじゃないかと、何の根拠も無しに思っていたので、覚悟が決まりました。 ご教示のURLを参考に頑張ってみます。 ありがとうございました。