void SendOneMsg() { if (usedSocket && summer && g_runing) { sprintf(sendBuffer, "%s", "hellow"); sendBufferLen = (int)strlen(sendBuffer) + 1; usedSocket->doSend(sendBuffer, sendBufferLen, std::bind(OnSocketSend, std::placeholders::_1, std::placeholders::_2));// safe-warning: one socket can't concurrent call this method without wait callback. } }
void OnSocketRecv(NetErrorCode ec, int recvLength) { if (ec != NEC_SUCCESS) return; memcpy(sendBuffer, recvBuffer, recvLength); sendBufferLen = recvLength; bool ret = usedSocket->doSend(sendBuffer, sendBufferLen, std::bind(OnSocketSend, std::placeholders::_1, std::placeholders::_2));// safe-warning: can't call this method again when last doSend request not return. if (!ret) return; ret = usedSocket->doRecv(recvBuffer, recvBufferLen, std::bind(OnSocketRecv, std::placeholders::_1, std::placeholders::_2)); if (!ret) return; sendCount++; };
void onConnect(NetErrorCode ec) { if (ec != NEC_SUCCESS) { LOGE("connect error"); g_runing = false; return; } usedSocket->doRecv(recvBuffer, recvBufferLen, std::bind(OnSocketRecv, std::placeholders::_1, std::placeholders::_2)); sprintf(sendBuffer, "%s", "hellow----------------------------------------------------------"); sendBufferLen = (int)strlen(sendBuffer) + 1; usedSocket->doSend(sendBuffer, sendBufferLen, std::bind(OnSocketSend, std::placeholders::_1, std::placeholders::_2));// safe-warning: one socket can't concurrent call this method without wait callback. };
void OnServerSocketRecv(NetErrorCode ec, int recvLength) { if (ec != NEC_SUCCESS) { return; } LOGI("recv client msg len = " << recvLength << ", msg :" << recvBuffer); memcpy(sendBuffer, recvBuffer, recvLength); sendBufferLen = recvLength; bool ret = usedSocket->doSend(sendBuffer, sendBufferLen, std::bind(OnSocketSend, std::placeholders::_1, std::placeholders::_2));// safe-warning: can't call this method again when last doSend request not return. if (!ret) { return; } ret = usedSocket->doRecv(recvBuffer, recvBufferLen, std::bind(OnServerSocketRecv, std::placeholders::_1, std::placeholders::_2)); if (!ret) { return; } };