分類:[C#]
2010/03/02(Tue) 21:56:38 編集(投稿者)
こんにちは、以前チャットアプリケーションの作り方について聞いた者です。
現在、下記のサイトを参考にして簡単な通信プログラムを作成しました。
http://codezine.jp/article/detail/22
このサイトのサーバー側プログラムにクライアントが接続したときの処理がありますが、
これを「とある変数が変化した時にその変数をクライアントへ返す」という処理にする予定です。
■サンプルの一部■
//BeginAcceptのコールバック
private static void AcceptCallback(System.IAsyncResult ar)
{
//サーバーSocketの取得
System.Net.Sockets.Socket server =
(System.Net.Sockets.Socket) ar.AsyncState;
//接続要求を受け入れる
System.Net.Sockets.Socket client = null;
try
{
//クライアントSocketの取得
client = server.EndAccept(ar);
}
catch
{
System.Console.WriteLine("閉じました。");
return;
}
//クライアントが接続した時の処理をここに書く
//ここでは文字列を送信して、すぐに閉じている
client.Send(System.Text.Encoding.UTF8.GetBytes("こんにちは。")); ←この部分を変える
client.Shutdown(System.Net.Sockets.SocketShutdown.Both);
client.Close();
//接続要求待機を再開する
server.BeginAccept(
new System.AsyncCallback(AcceptCallback), server);
}
■ここまで■
とりあえずこの部分は1秒ごとに値をチェックし、値が変化すればループを抜けるという処理にしようと思っています。
ここからが本題なのですが、肝心の「チェック対象の変数を書き換える」という処理が分からず困っています。
別のプログラムからサーバープログラム内の変数を書き変えたいと思っています。
多分チャットで発言する機能と同じようなものだとは思うのですが・・・。
最終的には、
@クライアントがサーバに接続して非同期通信開始
Aクライアントで入力した値をサーバー側に渡す
B以前の値から変化していれば、クライアント側にその値を返す
という処理にしたいと思っています。
どなたか良い方法や解説サイトを教えて頂けるとありがたいです。