void MsgClient::Stop( void ) { OUT_INFO("Msg",0,"MsgClient","stop"); StopClient() ; _httpcaller.Stop() ; }
void ServerConnection::onReceiveWriteDataRowsResponseHeader() { GenericReadResponseHeader responseHeader = *reinterpret_cast<GenericReadResponseHeader*>(_buffer); if(responseHeader.blockIdentifier != GenericReadResponseHeaderId || responseHeader.blockSize != sizeof(responseHeader)) { _onError(shared_from_this(), "Bad response from client upon write data rows request"); StopClient(); } else if(responseHeader.errorCode != NoError) { handleError(responseHeader); _onAwaitingCommand(shared_from_this()); } else if(responseHeader.dataSize != 0) { _onError(shared_from_this(), "Client sent unexpected data during write rows action"); StopClient(); } else { _onAwaitingCommand(shared_from_this()); } }
/*---------------------------------------------------------------------- | CUPnP::~CUPnP +---------------------------------------------------------------------*/ CUPnP::~CUPnP() { m_UPnP->Stop(); StopClient(); StopServer(); delete m_UPnP; delete m_ServerHolder; delete m_RendererHolder; delete m_CtrlPointHolder; }
void RemoteDebuggerProxy::Shutdown() { if ( mSessionGuid != GUID_NULL ) { // When you close the client interface to the remote agent (Cmd), the agent closes its // client interface to the debug engine (Event). To allow that call back, stop the client // before stopping the server. StopClient( mhContext ); StopServer(); } }
void CVechileMgr::Stop( void ) { if ( ! _vechile_inited ) return ; _vechile_inited = false ; StopClient() ; _send_thread.stop() ; _bench.Stop() ; }
TEST_F(SSFFixtureTest, ConnectToUnknownHost) { // Init timer (if client hangs) boost::system::error_code timer_ec; auto timer_callback = [this](const boost::system::error_code& ec) { EXPECT_NE(0, ec.value()) << "Timer should be canceled. Client is hanging"; if (!ec) { SendNotification(false); } }; StartTimer(std::chrono::seconds(5), timer_callback, timer_ec); auto client_callback = [this](ssf::Status status) { switch (status) { case ssf::Status::kEndpointNotResolvable: case ssf::Status::kServerUnreachable: SSF_LOG("test", critical, "Network initialization failed"); SendNotification(true); break; case ssf::Status::kServerNotSupported: SSF_LOG("test", critical, "Transport initialization failed"); SendNotification(false); break; case ssf::Status::kConnected: SendNotification(false); break; case ssf::Status::kDisconnected: SSF_LOG("test", info, "client: disconnected"); break; case ssf::Status::kRunning: SendNotification(false); break; default: break; } }; boost::system::error_code run_ec; StartClient("16000", client_callback, run_ec); ASSERT_EQ(0, run_ec.value()) << "Could not start client"; // Wait client action WaitNotification(); EXPECT_TRUE(IsNotificationSuccess()) << "Stop failed"; StopClient(); StopTimer(); }
void ServerConnection::onReceiveReadDataRowsResponseHeader() { GenericReadResponseHeader responseHeader = *reinterpret_cast<GenericReadResponseHeader*>(_buffer); if(responseHeader.blockIdentifier != GenericReadResponseHeaderId || responseHeader.blockSize != sizeof(responseHeader)) { _onError(shared_from_this(), "Bad response from client upon read data rows request"); StopClient(); } else if(responseHeader.errorCode != NoError) { handleError(responseHeader); _onAwaitingCommand(shared_from_this()); } else { prepareBuffer(responseHeader.dataSize); boost::asio::async_read(_socket, boost::asio::buffer(_buffer, responseHeader.dataSize), boost::bind(&ServerConnection::onReceiveReadDataRowsResponseData, shared_from_this(), responseHeader.dataSize)); } }
CComplSocketClient::~CComplSocketClient(void) { StopClient(); }
int main(int argc, char *argv[]) { char buffer[512], prog_name[512], sTemp[256]; int nret, i, share_size, count; int shm_id; int shm_need_init; int bRet; /*检测程序启动参数是否正确*/ if (CheckParam(argc, argv) == -1) { return 0; } strcpy(buffer, argv[0]); split_str(buffer, prog_name, "/", 1, 1, 1, 1); /*检测程序是否已经在后台运行*/ if (strcmp(argv[1], "start") != 0) { if ( !if_program_running(prog_name) ) { WriteLog(0, 0, OUT_SCREEN, "系统尚未启动"); return 0; } } WriteLog(0, 0, OUT_SCREEN, "读取配置文件 ... "); if (GetInitInfo(argv[0]) == -1) { return 0; } /*WriteLog(0, 0, OUT_SCREEN, "OK !");*/ if (strcmp(G_ini.cur_version, CURRENT_SERVER_VERSION) != 0) { WriteLog(0, 0, OUT_SCREEN, "程序版本错误,禁止运行!"); return 0; } G_shm = NULL; G_ctrl_data = NULL; G_trans_buffer = NULL; WriteLog(0, 0, OUT_SCREEN, "读取共享内存 ... "); shm_need_init = 0; if (strcmp(argv[1], "start") == 0 && argc == 2) { if (atoi(sTemp) > 1) { WriteLog(0, 0, OUT_SCREEN, "系统已经执行完成该命令"); return 0; } share_size = G_ini.proc_num * ((int)sizeof(struct SHM_CONF)) + (int)sizeof(struct SHM_HEAD); shm_id = shmget((key_t)G_ini.shm_key, (size_t)share_size, IPC_CREAT | IPC_EXCL | 0777); shm_need_init = 1; bRet = sem_requ(G_ini.sem_key, 1, 1); } else { shm_id = shmget((key_t)G_ini.shm_key, 0, 0777); bRet = sem_get(G_ini.sem_key, 1); } if (shm_id < 0) { /*EEXIST 17 File exists*/ WriteLog(0, 0, OUT_SCREEN, " shmget error(%d):%s", errno, strerror(errno)); FreeShm(shm_id); return 0; } if (bRet == SEM_ERROR) { WriteLog(0, 0, OUT_SCREEN, " semget error:%s", gs_sem_err); FreeShm(shm_id); return 0; } G_shm = (char *)shmat(shm_id, 0, 0); if (G_shm == (void *)-1) { WriteLog(0, 0, OUT_SCREEN, " shmat error(%d):%s", errno, strerror(errno)); FreeShm(shm_id); return 0; } if (shm_need_init == 1) { /*共享内存初试化*/ InitShm(); } else { if (ShmConfCheck() == -1) { WriteLog(0, 0, OUT_SCREEN, "INI文件在启动之后被修改过,禁止执行当前指令!"); if (shm_need_init == 1) { FreeShm(shm_id); } return 0; } } /*WriteLog(0, 0, OUT_SCREEN, "OK !");*/ if (strcmp(argv[1], "stop") == 0 || strcmp(argv[1], "query") == 0 || strcmp(argv[1], "refresh") == 0) { strcpy(buffer, argv[0]); split_str(buffer, prog_name, "/", 1, 1, 1, 1); if (strcmp(argv[1], "query") == 0) { QueryClient(prog_name); } if (strcmp(argv[1], "refresh") == 0) { if (argc != 3) { RefreshParam(prog_name, 0); } else { RefreshParam(prog_name, atoi(argv[2])); } } if (strcmp(argv[1], "stop") == 0) { WriteLog(0, 0, OUT_SCREEN, "server stop ..."); if (argc != 3) { StopClient(prog_name, 0); } else { StopClient(prog_name, atoi(argv[2])); } } if (strcmp(argv[1], "refresh") != 0) { if (GetRunCount() == 0) { /*WriteLog(0, 0, OUT_SCREEN, "释放资源 ...");*/ FreeShm(shm_id); } } return 0; } /****************************************************************************************/ count = 0; for (i = 0 ; i < G_ini.port_num ; i++) { if (argc != 2) { if (atoi(argv[2]) != G_ini.port_list[i].lsnr_port) { continue; } } WriteLog(0, 0, OUT_SCREEN, "\n启动:%s接口,port=[%d]", G_ini.port_list[i].name, G_ini.port_list[i].lsnr_port); nret = StartPort(G_ini.port_list[i].lsnr_port, G_ini.port_list[i].lsnr_num, G_ini.port_list[i].lsnr_len, G_ini.port_list[i].is_reuse_addr); FreeResource(); if (nret < 0) { continue; } count++; } if (count == 0) { WriteLog(0, 0, OUT_SCREEN, "系统启动失败,释放系统资源!"); FreeShm(shm_id); } else { WriteLog(0, 0, OUT_SCREEN, "系统启动指令执行完成!"); sleep(2); if (GetRunCount() == 0) { WriteLog(0, 0, OUT_SCREEN, "进程启动失败"); FreeShm(shm_id); } } return 0; }
void TcpClient::Stop(void) { StopClient(); }
void PasClient::Stop( void ) { _busloader.Stop() ; StopClient() ; }
TEST_F(SSFFixtureTest, CloseWhileConnecting) { // Init server int server_port = 15000; boost::asio::ip::tcp::acceptor server(get_io_service()); InitTCPServer(server, server_port); // Init timer (if client hangs) boost::system::error_code timer_ec; auto timer_callback = [this](const boost::system::error_code& ec) { EXPECT_NE(0, ec.value()) << "Timer should be canceled. Client is hanging"; if (!ec) { SendNotification(false); } }; StartTimer(std::chrono::seconds(20), timer_callback, timer_ec); ASSERT_EQ(0, timer_ec.value()) << "Could not start timer"; // Init client auto client_callback = [this](ssf::Status status) { switch (status) { case ssf::Status::kEndpointNotResolvable: case ssf::Status::kServerUnreachable: SSF_LOG("test", critical, "Network initialization failed"); SendNotification(true); break; case ssf::Status::kServerNotSupported: SSF_LOG("test", critical, "Transport initialization failed"); SendNotification(true); break; case ssf::Status::kConnected: SendNotification(true); break; case ssf::Status::kDisconnected: SSF_LOG("test", info, "client: disconnected"); break; case ssf::Status::kRunning: SendNotification(false); break; default: break; } }; boost::system::error_code run_ec; StartClient(std::to_string(server_port), client_callback, run_ec); ASSERT_EQ(0, run_ec.value()); // Wait new server connection boost::asio::ip::tcp::socket socket(get_io_service()); server.async_accept(socket, [this](const boost::system::error_code& ec) { EXPECT_EQ(0, ec.value()) << "Accept connection in error"; // Stop client while connecting StopClient(); }); // Wait client action WaitNotification(); EXPECT_TRUE(IsNotificationSuccess()) << "Stop failed"; StopTimer(); boost::system::error_code close_ec; socket.close(close_ec); server.close(close_ec); }
CgcUdpClient::~CgcUdpClient(void) { StopClient(); }
void CGameControllerEXP::Tick() { IGameController::Tick(); TickBots(); TickEnvironment(); for(int fi = 0; fi < m_CurFlag+1; fi++) { CFlag *f = NULL; if(fi == m_CurFlag) f = m_FlagEnd; else f = m_aFlagsCP[fi]; if(!f) // if there isn't flag end continue; CCharacter *apCloseCharacters[MAX_CLIENTS]; int Num = GameServer()->m_World.FindEntities(f->GetPos(), CFlag::ms_PhysSize, (CEntity**)apCloseCharacters, MAX_CLIENTS, CGameWorld::ENTTYPE_CHARACTER); for(int i = 0; i < Num; i++) { if(!apCloseCharacters[i]->IsAlive() || apCloseCharacters[i]->GetPlayer()->IsBot() || apCloseCharacters[i]->GetPlayer()->GetTeam() == -1) continue; int id = apCloseCharacters[i]->GetPlayer()->GetCID(); if(fi == m_CurFlag) { // END if(!m_Boss.m_Exist || GameServer()->m_apPlayers[id]->m_GameExp.m_BossKiller) StopClient(id); } else { // REGEN if((float)Server()->Tick() > apCloseCharacters[i]->GetPlayer()->m_GameExp.m_RegenTimer + GameServer()->Tuning()->m_RegenTimer*Server()->TickSpeed()) { if(apCloseCharacters[i]->m_Health < 10) //regen health { apCloseCharacters[i]->m_Health++; apCloseCharacters[i]->GetPlayer()->m_GameExp.m_RegenTimer = (float)Server()->Tick(); } else if(apCloseCharacters[i]->m_Armor < apCloseCharacters[i]->GetPlayer()->m_GameExp.m_ArmorMax) //regen armor { apCloseCharacters[i]->m_Armor++; apCloseCharacters[i]->GetPlayer()->m_GameExp.m_RegenTimer = (float)Server()->Tick(); } else // regen ammo { int WID = apCloseCharacters[i]->m_ActiveWeapon; if(apCloseCharacters[i]->m_aWeapons[WID].m_Ammo != -1) { int MaxAmmo = g_pData->m_Weapons.m_aId[WID].m_Maxammo; if(apCloseCharacters[i]->m_aWeapons[WID].m_Ammo < MaxAmmo) { apCloseCharacters[i]->m_aWeapons[WID].m_Ammo++; apCloseCharacters[i]->GetPlayer()->m_GameExp.m_RegenTimer = (float)Server()->Tick(); } } } } // SAVE if(apCloseCharacters[i]->GetPlayer()->m_GameExp.m_LastFlag != fi+1) { apCloseCharacters[i]->GetPlayer()->m_GameExp.m_LastFlag = fi+1; GameServer()->SendChatTarget(apCloseCharacters[i]->GetPlayer()->GetCID(), "Checkpoint reached."); //apCloseCharacters[i]->GetPlayer()->m_GameExp.m_SaveTimer = (float)Server()->Tick() + 5.0f*Server()->TickSpeed(); } } } } }
void MsgClient::Stop(void) { OUT_INFO("Msg", 0, "MsgClient", "stop"); StopClient(); }