• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-ccocoa誰得qtrubypythonbathyscaphephpgamewindowsguic翻訳omegattwitterframeworktestbtronarduinovb.net計画中(planning stage)directxpreviewerゲームエンジンdom

ソケットを使ってクライアントサーバプログラムを作成するための C# ライブラリ


Commit MetaInfo

Révision07e7d34fb5987bfb1915abe7d6b2f483f932224a (tree)
l'heure2015-08-15 12:09:38
Auteurtsntsumi <tsntsumi@tsnt...>
Commitertsntsumi

Message de Log

ライブラリとサンプルの使用法の説明を追加

Change Summary

Modification

--- a/doc/mainpage.dox
+++ b/doc/mainpage.dox
@@ -9,4 +9,67 @@ SocketNet は、ソケットを使ってクライアントサーバプログラ
99
1010 このライブラリは、 GNU <a href="http://www.gnu.org/copyleft/lesser.html">
1111 Lesser General Public License</a> バージョン 3 の元で配布しています。
12+
13+@section sample サンプルプログラム
14+
15+SocketNet を使用したサンプルプログラムを以下のプロジェクトで提供しています。
16+
17+- SampleChatServer -- コンソールベースの簡単なチャットサーバ。
18+- SampleChatGtkClient -- Gtk# ベースの簡単なチャットクライアント。
19+- SampleChatClient -- SampleChatSever と SampleChatClient の共通クラス。
20+
21+@subsection chatserver SampleChatServer
22+
23+SampleChatServer はターミナルから起動する CLI コマンドです。
24+起動するとチャットクライアントからの接続を、ポート番号 50001 で待ち受けます。
25+何かキーを入力すると終了します。
26+
27+クライアントから接続があったり、メッセージを受信したりするとコンソールに表示します。
28+
29+メッセージが「/LIST」のときは、現在接続しているクライアントの IP アドレスを表示します。
30+
31+@subsection chatclient SampleChatGtkClient
32+
33+SampleChatGtkClient は Gtk# ベースの GUI アプリケーションです。
34+起動したら SampleChatServer が実行されているパソコンの IP アドレスを入力して、
35+Connect ボタンで接続します。
36+
37+メッセージ入力エリアに文字を入力して Send ボタンをクリックすると、
38+サーバにその文字が送信されます。
39+サーバから送り返されたメッセージは、メッセージ表示エリアに表示されます。
40+
41+切断は Disconnect ボタンをクリックします。
42+
43+@section usage 使用法
44+
45+パケットの構造が、先頭 4 バイトにネットワークバイトオーダでペイロード長が格納されている場合は、
46+単に SocketNet.TcpServer のインスタンスを生成して Start() メソッドを呼び出します。
47+
48+@code
49+ var server = new TcpServer(IPAddress.Any, 50001, new Packet());
50+ server.DataReceived = server_DataReceived;
51+ server.Start();
52+@endcode
53+
54+上記のようにすることで、 server_DataReceived() がパケットを受信するごとに呼び出されます。
55+server_DataReceived() に受信したときの処理を書いてください。
56+
57+パケットの構造が複雑な場合は、 SocketNet.Packet クラスを継承して、
58+SocketNet.Packet.ObtainPayloadLength() をオーバライドします。
59+
60+例えば、ヘッダが 5 バイト、フッタが 2 バイトで、ペイロードの長さがヘッダの 3 バイト目に格納されている場合は、
61+以下のようになるでしょう。
62+
63+@code
64+ public class MyPacket: SocketNet.Packet
65+ {
66+ public MyPacket() : base(5, 2) {}
67+
68+ public override int ObtainPayloadLength(byte[] header)
69+ {
70+ return header[2];
71+ }
72+ }
73+@endcode
74+
1275 */