int open_connection (const String &config, const String &display) { SocketAddress addr (scim_get_default_panel_socket_address (display)); if (m_socket.is_connected ()) close_connection (); bool ret; int count = 0; // Try three times. while (1) { if ((ret = m_socket.connect (addr)) == false) { scim_usleep (100000); launch_panel (config, display); for (int i = 0; i < 200; ++i) { if (m_socket.connect (addr)) { ret = true; break; } scim_usleep (100000); } } if (ret && scim_socket_open_connection (m_socket_magic_key, String ("FrontEnd"), String ("Panel"), m_socket, m_socket_timeout)) break; m_socket.close (); if (count++ >= 3) break; scim_usleep (100000); } return m_socket.get_id (); }
void MainLayer::menuCloseCallback(Object* pSender) { SocketClient* socketClient = SocketClient::createSocketClient("127.0.0.1",12345); socketClient->retain(); SocketMgr::set(socketClient); socketClient = SocketMgr::get(); auto callback = std::bind(&MainLayer::onLoginResponse,this,std::placeholders::_1); socketClient->registCallbackT<LoginResponse>(1,callback); if (socketClient->connect()) { LoginRequest* loginRequestMessage = new LoginRequest(); loginRequestMessage->set_username("cmzx3444"); loginRequestMessage->set_password("123456"); socketClient->send(loginRequestMessage); loginRequestMessage = new LoginRequest(); loginRequestMessage->set_username("cmzx3444"); loginRequestMessage->set_password("123456"); socketClient->send(loginRequestMessage); loginRequestMessage = new LoginRequest(); loginRequestMessage->set_username("cmzx3444"); loginRequestMessage->set_password("123456"); socketClient->send(loginRequestMessage); loginRequestMessage = new LoginRequest(); loginRequestMessage->set_username("cmzx3444"); loginRequestMessage->set_password("123456"); socketClient->send(loginRequestMessage); } else { socketClient->release(); } Director::getInstance()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) exit(0); #endif }
bool check_socket_frontend () { SocketAddress address; SocketClient client; uint32 magic; address.set_address (scim_get_default_socket_frontend_address ()); if (!client.connect (address)) return false; if (!scim_socket_open_connection (magic, String ("ConnectionTester"), String ("SocketFrontEnd"), client, 1000)) { return false; } return true; }