void CCPomelo::asyncConnect(const char* addr, int port, std::function<void(Node*, void*)> f) { if (!connect_content) { connect_status = 0; connect_content = new CCPomeloConnect_; connect_content->func = f; }else{ CCLOG("can not call again before the first connect callback"); return ; } struct sockaddr_in address; memset(&address, 0, sizeof(struct sockaddr_in)); address.sin_family = AF_INET; address.sin_port = htons(port); address.sin_addr.s_addr = inet_addr(addr); client = pc_client_new(); pc_connect_t* async = pc_connect_req_new(&address); int ret = pc_client_connect2(client,async,cc_pomelo_on_ansync_connect_cb); if(ret) { log("pc_client_connect2 error:%d", errno); pc_client_destroy(client); cc_pomelo_on_ansync_connect_cb(NULL,ret); } }
void CCPomelo::asyncConnect(const char* addr,int port,CCObject* pTarget, SEL_CallFuncND pSelector){ if (!connect_content) { connect_status = 0; connect_content = new CCPomeloConnect_; connect_content->content = new CCPomeloContent_; connect_content->content->pTarget = pTarget; connect_content->content->pSelector = pSelector; }else{ CCLOG("can not call again before the first connect callback"); return ; } struct sockaddr_in address; memset(&address, 0, sizeof(struct sockaddr_in)); address.sin_family = AF_INET; address.sin_port = htons(port); address.sin_addr.s_addr = inet_addr(addr); client = pc_client_new(); pc_connect_t* async = pc_connect_req_new(&address); int ret = pc_client_connect2(client,async,cc_pomelo_on_ansync_connect_cb); if(ret) { CCLOG("pc_client_connect2 error:%d",errno); pc_client_destroy(client); cc_pomelo_on_ansync_connect_cb(NULL,ret); } }