Tutorial?
SIGVerseサーバのエージェントにメッセージを送信するツールを作成します。 ここではVC++.NET(2008)を使用することを前提とします。(※VC++2010には対応していません)
上のdllファイルをダウンロードします。
VC++の新しいプロジェクトを作成します。ファイル→新規作成→プロジェクト
新しいプロジェクトのダイアログが立ち上がるとCLRのWindowsフォームアプリケーションを選択し、プロジェクト名を入力してOKボタンを押します。
ソリューションエクスプローラの中のプロジェクトを右クリックして参照を選択します。 共通プロパティのFrameworkと参照を選択し、新しい参照の追加ボタンをクリックします。次に参照タブを選択して、上でダウンロードしたsigverse.dllを選択します。
ツールボックスからButtonを選択して適当にボタンを追加します。
ボタンをダブルクリックしてイベントハンドラの中に以下のコードを追加してコンパイルします。
MessageSenderのコンストラクタで引数で送信元の名前を指定します。
msg.connectでサーバに接続します。1番目の引数"hostname"はSIGVerseサーバのホスト名に置き換えてください。2番目の引数はSIGVerseサーバのポート番号を入力します。 メッセージを送信するたびにconnectします。
sendtoでメッセージを送信します。1番目の引数は送信相手を、2番目は送信するメッセージの数(配列のサイズ)、3番目はメッセージを指定します。
これでボタンを押すと"man_000"にメッセージ"Hello"が送信できるようになりました。
まずチュートリアルのサンプル人間型エージェントの操作の「コマンドによるエージェントの操作」のサンプルコードをサーバ側で実行します。 次にビューワーで接続し、"Send"ボタンを押してシミュレーションを開始します。
シミュレーション開始したら、先ほど作成したボタンを押してメッセージを送信します。 人間がお辞儀したらメッセージ送信成功です。
VC++2008(アンマネージド)を使用することを前提とします。
まず以下のzipファイルをダウンロードして展開します。
展開したフォルダの中にはincludeとlibフォルダがあります。
VC++2008で新規プロジェクトを作成します。ファイル→新規作成→プロジェクト
新しいプロジェクトのダイアログが立ち上がるとWin32のWin32コンソールアプリケーションを選択し、プロジェクト名を入力してOKボタンを押します。
アプリケーションの設定ダイアログでは空のプロジェクトにチェックを入れて完了ボタンを押します。
以下のコードを追加します。
test_sndmsg.cpp
ホスト名とポート番号は自分の環境に合わせて置き換えます。 サンプルコードに関する説明はこちら こちらと同じです。
ソリューションエクスプローラのプロジェクト名を右クリックし、参照を選択します。 「構成プロパティ」→「C/C++」→「全般」を選択し、「追加のインクルードディレクトリ」に展開したライブラリのincludeフォルダを指定します。
次に「構成プロパティ」→「リンカ」→「全般」を選択し、「追加のライブラリディレクトリ」に展開したライブラリのlibフォルダを指定します。
最後に同じ「リンカ」の「入力」を選択し「追加の依存ファイル」に以下の2つを追加します。
sndmsg.lib
ws2_32.lib
これで準備は整いました。
コンパイルしてチュートリアルのサンプル人間型エージェントの操作の「コマンドによるエージェントの操作」のサンプルコードをサーバ側で実行した状態でメッセージ送信プログラムを実行してみてください。エージェントがお辞儀したら成功です。