2008年01月22日

公開しました(ServerSocketクラス)

新たに公開したのは、↓です。
■サーバーソケットクラス(C/C++)Windows,Linux共用
JavaのServerSocketクラスに近いものです。ソケットサーバで使用することを想定しています。

今まで公開しているSocket、SocketStreamクラスを併用すると、以下のように簡便にソケットサーバを作成できます。

以下のサーバは、ポート8080で接続待機して、クライアントから受け取ったデータ(文字列)を標準出力し、"end"を受信すると終了します。


#define WIN32_LEAN_AND_MEAN
#include
#ifdef _WIN32
#include
#endif
#include

#include "ServerSocket.h"
#include "SocketStream.h"

#ifdef _WIN32
int _tmain(int argc, _TCHAR* argv[])
#else
int main()
#endif
{
Socket::StartUp();

ServerSocket server;
server.Listen(8080);

while(1) {
Socket cli = server.Accept();
if( !cli.isOK() ) {
printf("Invalid Socket!\n");
break;
}

SocketStream stream;
stream.Open(cli);

char buf[64];
stream.GetLine(buf, sizeof(buf));

printf("[%s]\n", buf);

stream.Close();

if( !strcmp(buf, "end") ) {
break;
}
}
server.Close();

Socket::CleanUp();
return 0;
}

posted by 台北猫々 at 21:40| Comment(0) | TrackBack(0) | 日記

更新しました(SocketStreamクラス)

・SocketStreamクラス v1.0.3
1.GetLineメソッド追加
1行の長さが不定のデータに対応するため、戻り値をstd::stringにしたものを追加した。

2.IsEOFメソッド追加
ストリームを終了を判定するメソッドを追加した。

3.ライセンス
BSD licenseに変更した。

4.GetReadStreamメソッド(protected)
5.GetWriteStreamメソッド(protected)
継承して拡張するように、ファイルポインタ取得メソッドを追加した。
posted by 台北猫々 at 20:59| Comment(0) | TrackBack(0) | 日記

BSDライセンスに切り替えよう

最近、公開しているC/C++などのクラスのライセンスをGPLv3にしていたのですが、勘違いしてしまっていました。

GPLv3は再頒布に制限があるのですね(ないかと思っていました(^^;)。
http://ja.wikipedia.org/wiki/GNU_General_Public_License#.E3.83.90.E3.83.BC.E3.82.B8.E3.83.A7.E3.83.B33

特別な処理が入っているわけではないので、BSDライセンスに随時切り替えようと思っています。

ライセンスもしっかり勉強しないと駄目駄目ですね猫


良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 19:04| Comment(0) | TrackBack(0) | 日記