■サーバーソケットクラス(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;
}