#include #include GenericServer::GenericServer(void) : mIsRunning(TRUE) { } GenericServer::~GenericServer() { message("Server is destructing..."); } void GenericServer::close(void) { mIsRunning=FALSE; } WORD GenericServer::send(const char &charData) { return mPortControl.send(charData); } WORD GenericServer::send(const String &sendString) { return mPortControl.send(sendString); } WORD GenericServer::receive(String &receiveString,BOOL waitForData) { return mPortControl.receive(receiveString,waitForData); } WORD GenericServer::receive(char &charData,BOOL waitForData) { return mPortControl.receive(charData,waitForData); } WORD GenericServer::receive(Block &receiveStrings) { return mPortControl.receive(receiveStrings); } /* WORD GenericServer::listen(const String &hostName,short portNum) { HostEnt hostEntry; ServEnt serverEntry; String stringData; message(String("trying host'")+hostName+String("'...")); if(!mWSASystem.isInitialized()){message("WINSOCK initialization failure.");return FALSE;} InternetAddress internetAddress(hostName); if(!internetAddress.isZero()){if(!hostEntry.hostByAddress(internetAddress)){message(String("no DNS entry for ")+hostName);return FALSE;}} else if(!hostEntry.hostByName(hostName)){message(String("no DNS entry for ")+hostName);return FALSE;} message(String("connect...")+String("'")+hostEntry.hostName()+String("' (")+(String)(hostEntry.addresses())[0]+String(")")); mInternetSocketAddress.internetAddress((hostEntry.addresses())[0]); mInternetSocketAddress.family(PF_INET); mInternetSocketAddress.port(portNum); while(TRUE) { INETSocketAddress internetSocketAddress; message(String("[GenericServer::listen] host='")+(hostEntry.addresses())[0]+String("' port=")+String().fromInt(portNum)); if(!mGenericControl.create()){message("socket initialization failure.");return FALSE;} if(!mGenericControl.bind(mInternetSocketAddress)){message("bind failed");return FALSE;} String strLocalHost((String)mInternetSocketAddress.internetAddress()); message(String("local address is ")+strLocalHost); if(!mGenericControl.listen()){message("listen failed");return FALSE;} message("waiting for connection..."); if(!mGenericControl.accept(mPortControl,internetSocketAddress)){message("accept returned FALSE;");return FALSE;} message(String("service started from ")+(String)internetSocketAddress.internetAddress()); mPortControl.bind(internetSocketAddress); acceptHandler(); if(mPortControl.receive(stringData))stringHandler(stringData); mPortControl.destroy(); mGenericControl.destroy(); ::Sleep(TimeOut); } message("terminating connection"); return TRUE; } */ WORD GenericServer::listen(const String &hostName,short portNum) { HostEnt hostEntry; ServEnt serverEntry; String stringData; message(String("trying host'")+hostName+String("'...")); if(!mWSASystem.isInitialized()){message("WINSOCK initialization failure.");return FALSE;} InternetAddress internetAddress(hostName); if(!internetAddress.isZero()){if(!hostEntry.hostByAddress(internetAddress)){message(String("no DNS entry for ")+hostName);return FALSE;}} else if(!hostEntry.hostByName(hostName)){message(String("no DNS entry for ")+hostName);return FALSE;} message(String("connect...")+String("'")+hostEntry.hostName()+String("' (")+(String)(hostEntry.addresses())[0]+String(")")); mInternetSocketAddress.internetAddress((hostEntry.addresses())[0]); mInternetSocketAddress.family(PF_INET); mInternetSocketAddress.port(portNum); while(TRUE) { INETSocketAddress internetSocketAddress; message(String("[GenericServer::listen] host='")+(hostEntry.addresses())[0]+String("' port=")+String().fromInt(portNum)); if(!mGenericControl.create()){message("socket initialization failure.");return FALSE;} mGenericControl.reuseAddress(); if(!mGenericControl.bind(mInternetSocketAddress)){message("bind failed");return FALSE;} String strLocalHost((String)mInternetSocketAddress.internetAddress()); message(String("local address is ")+strLocalHost); if(!mGenericControl.listen()){message("listen failed");return FALSE;} message("waiting for connection..."); if(!mGenericControl.accept(mPortControl,internetSocketAddress)){message("accept returned FALSE;");return FALSE;} message(String("service started from ")+internetSocketAddress.internetAddress().toString()); mPortControl.bind(internetSocketAddress); acceptHandler(); // if(mPortControl.receive(stringData))stringHandler(stringData); Block receiveStrings; printf("Received data..."); if(mPortControl.receive(receiveStrings)) { for(int index=0;index &msgData) { for(int msgIndex=0;msgIndex