00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "stdafx.h"
00024 #include "DServerAgent.h"
00025 #include "MicoleAgentThread.h"
00026 #include "MicoleStringStream.h"
00027
00028
00029 DServerAgent::DServerAgent(SOCKET sock, ServerAgent * srv)
00030 : MicoleAgentThread("DServerAgent","DServerAgent")
00031 {
00032 _sock = sock;
00033 _parent = srv;
00034 send(_sock, "All is ok!!!\0", 13, 0);
00035 start();
00036 }
00037
00038 DServerAgent::~DServerAgent()
00039 {}
00040
00041 void DServerAgent::run ()
00042 {
00043 char *buffer = new char[1024];
00044 int result;
00045
00046 while(getState()==ACTIVE)
00047 {
00048 result = recv(_sock, buffer, 1023, 0);
00049
00050 if (result == -1) {
00051 _parent->removeThread(this);
00052 } else {
00053 OutputDebugStringA("In network: ");
00054 OutputDebugStringA(buffer);
00055 OutputDebugStringA("\n");
00056 _parent->sendOnAllClients(buffer);
00057 }
00058
00059 }
00060 closesocket(_sock);
00061 WSACleanup();
00062
00063
00064 }
00065
00066 void DServerAgent::sendOnNetwork(string s) {
00067 send(_sock, (s+"\0").c_str(), (int(s.size())+1), 0);
00068 }
00069
00070
00074 void DServerAgent::prepareToStop(int argc, const char **argv)
00075 {
00076 }
00077
00078 void DServerAgent::prepareToSuspend(int argc, const char **argv)
00079 {
00080 }