ソケットを使ってクライアントサーバプログラムを作成するための C# ライブラリ
Révision | 85e8d2f89de56834111c67b7554311edb3870ef0 (tree) |
---|---|
l'heure | 2015-08-23 14:23:34 |
Auteur | tsntsumi <tsntsumi@tsnt...> |
Commiter | tsntsumi |
mainpage.dox に UdpServer の説明を追加
@@ -1,9 +1,10 @@ | ||
1 | 1 | -*- Indented-Text -*- |
2 | 2 | /** @mainpage |
3 | 3 | @section overview 概要 |
4 | -SocketNet は、ソケットを使ってクライアントサーバプログラムを作成するための C# フレームワークです。 | |
5 | -主に、サーバを作るための @link SocketNet.TcpServer @endlink クラスと、 | |
6 | -クライアントで使用する @link SocketNet.TcpConnection @endlink クラスで構成されます。 | |
4 | +@c SocketNet は、ソケットを使ってクライアントサーバプログラムを作成するための C# フレームワークです。 | |
5 | +主に、TCP サーバを作るための @c SocketNet.TcpServer クラスと、 | |
6 | +クライアントで使用する @c SocketNet.TcpConnection クラス、 | |
7 | +および UDP サーバを作るための @c SocketNet.UdpServer クラスで構成されます。 | |
7 | 8 | |
8 | 9 | @section license ライセンス |
9 | 10 |
@@ -12,38 +13,56 @@ Lesser General Public License</a> バージョン 3 の元で配布していま | ||
12 | 13 | |
13 | 14 | @section sample サンプルプログラム |
14 | 15 | |
15 | -SocketNet を使用したサンプルプログラムを以下のプロジェクトで提供しています。 | |
16 | +@c SocketNet を使用したサンプルプログラムを以下のプロジェクトで提供しています。 | |
16 | 17 | |
17 | 18 | - SampleChatServer -- コンソールベースの簡単なチャットサーバ。 |
18 | 19 | - SampleChatGtkClient -- Gtk# ベースの簡単なチャットクライアント。 |
19 | -- SampleChatClient -- SampleChatSever と SampleChatClient の共通クラス。 | |
20 | +- SampleChatClient -- @c SampleChatServer と @c SampleChatClient の共通クラス。 | |
21 | +- SampleUdpChatGtkClient -- Gtk# ベースの簡単な UDP チャットクアプリケーション。 | |
20 | 22 | |
21 | 23 | @subsection chatserver SampleChatServer |
22 | 24 | |
23 | -SampleChatServer はターミナルから起動する CLI コマンドです。 | |
25 | +@c SampleChatServer はターミナルから起動する CLI コマンドです。 | |
24 | 26 | 起動するとチャットクライアントからの接続を、ポート番号 50001 で待ち受けます。 |
25 | 27 | 何かキーを入力すると終了します。 |
26 | 28 | |
27 | 29 | クライアントから接続があったり、メッセージを受信したりするとコンソールに表示します。 |
28 | 30 | |
29 | -メッセージが「/LIST」のときは、現在接続しているクライアントの IP アドレスを表示します。 | |
31 | +メッセージが「 @c /LIST 」のときは、現在接続しているクライアントの IP アドレスを表示します。 | |
30 | 32 | |
31 | 33 | @subsection chatclient SampleChatGtkClient |
32 | 34 | |
33 | -SampleChatGtkClient は Gtk# ベースの GUI アプリケーションです。 | |
34 | -起動したら SampleChatServer が実行されているパソコンの IP アドレスを入力して、 | |
35 | -Connect ボタンで接続します。 | |
35 | +@c SampleChatGtkClient は Gtk# ベースの GUI アプリケーションです。 | |
36 | +起動したら @c SampleChatServer が実行されているパソコンの IP アドレスを入力して、 | |
37 | +@c Connect ボタンで接続します。 | |
36 | 38 | |
37 | -メッセージ入力エリアに文字を入力して Send ボタンをクリックすると、 | |
39 | +メッセージ入力エリアに文字を入力して @c Send ボタンをクリックすると、 | |
38 | 40 | サーバにその文字が送信されます。 |
39 | 41 | サーバから送り返されたメッセージは、メッセージ表示エリアに表示されます。 |
40 | 42 | |
41 | -切断は Disconnect ボタンをクリックします。 | |
43 | +切断は @c Disconnect ボタンをクリックします。 | |
44 | + | |
45 | +@subsection udpchatclient SampleUdpChatGtkClient | |
46 | + | |
47 | +@c SampleUdpChatGtkClient は Gtk# ベースの GUI アプリケーションです。 | |
48 | +起動したら受信用のポート番号を入力し、開始ボタンをクリックします。 | |
49 | +送信先のアドレスとして、もう一つの @c SampleUdpChatGtkClient が実行されているパソコンの | |
50 | +IP アドレスか、ブロードキャストアドレス、ローカルブロードキャストアドレスと、 | |
51 | +ポート番号を入力します。 | |
52 | + | |
53 | +メッセージ入力エリアに文字を入力して @c Send ボタンをクリックすると、 | |
54 | +送信先のアプリケーションにその文字が送信されます。 | |
55 | +ブロードキャストアドレスを指定した場合は、自分のメッセージ表示エリアにも表示されます。 | |
56 | + | |
57 | +受信を停止するには @c Stop ボタンをクリックします。 | |
42 | 58 | |
43 | 59 | @section usage 使用法 |
44 | 60 | |
61 | +@subsection tcpserverusage TcpServer の使用法 | |
62 | + | |
45 | 63 | パケットの構造が、先頭 4 バイトにネットワークバイトオーダでペイロード長が格納されている場合は、 |
46 | -単に SocketNet.TcpServer のインスタンスを生成して Start() メソッドを呼び出します。 | |
64 | +単に @c SocketNet.TcpServer のインスタンスを生成して | |
65 | +@c SocketNet.TcpServer.Start() メソッドを呼び出します。 | |
47 | 66 | |
48 | 67 | @code |
49 | 68 | var server = new TcpServer(IPAddress.Any, 50001, new Packet()); |
@@ -51,11 +70,11 @@ Connect ボタンで接続します。 | ||
51 | 70 | server.Start(); |
52 | 71 | @endcode |
53 | 72 | |
54 | -上記のようにすることで、 server_DataReceived() がパケットを受信するごとに呼び出されます。 | |
55 | -server_DataReceived() に受信したときの処理を書いてください。 | |
73 | +上記のようにすることで、 @c server_DataReceived() がパケットを受信するごとに呼び出されます。 | |
74 | +@c server_DataReceived() に受信したときの処理を書いてください。 | |
56 | 75 | |
57 | -パケットの構造が複雑な場合は、 SocketNet.Packet クラスを継承して、 | |
58 | -SocketNet.Packet.ObtainPayloadLength() をオーバライドします。 | |
76 | +パケットの構造が複雑な場合は、 @c SocketNet.Packet クラスを継承して、 | |
77 | +@c SocketNet.Packet.ObtainPayloadLength() をオーバライドします。 | |
59 | 78 | |
60 | 79 | 例えば、ヘッダが 5 バイト、フッタが 2 バイトで、ペイロードの長さがヘッダの 3 バイト目に格納されている場合は、 |
61 | 80 | 以下のようになるでしょう。 |
@@ -72,4 +91,19 @@ SocketNet.Packet.ObtainPayloadLength() をオーバライドします。 | ||
72 | 91 | } |
73 | 92 | @endcode |
74 | 93 | |
94 | +@subsection udpserverusage UdpServer 使用法 | |
95 | + | |
96 | +ブロードキャスト UDP サーバを作成する場合は、 | |
97 | +@c SocketNet.UdpServer のインスタンスをファクトリメソッドで生成して | |
98 | +@c SocketNet.UdpServer.Start() メソッドを呼び出します。 | |
99 | + | |
100 | +@code | |
101 | + var server = UdpServer.CreateServer(50000); | |
102 | + udpServer.DataReceived = udpServer_DataReceived; | |
103 | + udpServer.Start(); | |
104 | +@endcode | |
105 | + | |
106 | +以上のようにすると、 @c udpServer_DataReceived() がデータを受信するごとに呼び出されます。 | |
107 | +@c udpServer_DataReceived() に受信したときの処理を書いてください。 | |
108 | + | |
75 | 109 | */ |