void LRTGroupSession::Init() { TCPSocket* socket = this->GetSocket(); socket->Open(); socket->InitNonBlocking(socket->GetSocketFD()); socket->NoDelay(); socket->KeepAlive(); socket->SetSocketBufSize(96L * 1024L); socket->SetTask(this); this->SetTimer(120*1000); for(int i=0;i<MSG_PACKED_ONCE_NUM;++i) { m_packedNewMsg.add_msgs(); } for(int i=0;i<MSG_PACKED_ONCE_NUM;++i) { m_packedSeqnMsg.add_msgs(); } for(int i=0;i<MSG_PACKED_ONCE_NUM;++i) { m_packedDataMsg.add_msgs(); } }
void MRTTransferSession::Init() { TCPSocket* socket = this->GetSocket(); socket->Open(); socket->InitNonBlocking(socket->GetSocketFD()); socket->NoDelay(); socket->KeepAlive(); socket->SetSocketBufSize(96L * 1024L); this->SetTimer(120*1000); }
bool RTHttpSender::ConnHttpHost(const std::string& addr, const unsigned short port, const std::string& host) { SetHttpHost(host); TCPSocket* socket = this->GetSocket(); if (socket->Open() != OS_NoErr) { LE("%s socket->Open failed!!!\n", __FUNCTION__); return false; } socket->InitNonBlocking(socket->GetSocketFD()); socket->NoDelay(); socket->SetSocketBufSize(96L * 1024L); socket->SetTask(this); this->SetTimer(5*1000); OS_Error err; do{ sleep(1); err = socket->Connect(SocketUtils::ConvertStringToAddr(addr.c_str()), port); LI("Connect to http server %s:%u, waiting...\n", addr.c_str(), port); }while(!(err==OS_NoErr || err==EISCONN)); //socket->RequestEvent(EV_RE); LI("%s addr:%s, port:%u\n", __FUNCTION__, addr.c_str(), port); return true; }
int main(int argc, char** argv) { // use non-default port if provided if (argc > 1) *(const_cast<unsigned short*>(&SERVER_PORT)) = atoi(argv[1]); if (!Init()) { printf("Failed to initialize.\n"); return 1; } // prepare for peer to peer PeerAuthClientState aPeerAuthClientState; unsigned short aRequestBufLen = 0; const void* aRequestBufP = NULL; // create Auth1Request Error aError = aPeerAuthClientState.Init(gIdentity, &aRequestBufP, &aRequestBufLen); printf("PeerAuthClientState::Init: %s.\n", WONErrorToString(aError)); if (aError != Error_Success) return aError; // connect to server IPSocket::Address aServerAddress("localhost", SERVER_PORT); TCPSocket aServerCommSocket; aError = aServerCommSocket.Open(aServerAddress); printf("Connecting to server at %s: %s.\n", aServerAddress.GetAddressString().c_str(), WONErrorToString(aError)); if (aError != Error_Success) return aError; // send Auth1Request aServerCommSocket.Send(2, &aRequestBufLen); aServerCommSocket.Send(aRequestBufLen, aRequestBufP); printf("Sent request.\n"); // receive server response (Auth1Challenge1 or Auth1Complete) unsigned short aChallenge1BufLen = 0; aServerCommSocket.Recv(2, &aChallenge1BufLen); void* aChallenge1BufP = new unsigned char[aChallenge1BufLen]; aServerCommSocket.Recv(aChallenge1BufLen, aChallenge1BufP); printf("Received server->client challenge.\n"); // process server response: // if Auth1Complete, we're done // if Auth1Challenge1, generate Auth1Challenge2 unsigned short aChallenge2BufLen = 0; const void* aChallenge2BufP = NULL; aPeerAuthClientState.RecvChallenge1(aChallenge1BufP, aChallenge1BufLen, &aChallenge2BufP, &aChallenge2BufLen); printf("PeerAuthClientState::RecvChallenge1: %s.\n", WONErrorToString(aError)); if (aError != Error_Success) return aError; // send Auth1Challenge2 aServerCommSocket.Send(2, &aChallenge2BufLen); aServerCommSocket.Send(aChallenge2BufLen, aChallenge2BufP); printf("Sent client->server challenge.\n"); // receive Auth1Complete unsigned short aResultBufLen = 0; aServerCommSocket.Recv(2, &aResultBufLen); void* aResultBufP = new unsigned char[aResultBufLen]; aServerCommSocket.Recv(aResultBufLen, aResultBufP); printf("Received result.\n"); // process Auth1Complete aError = aPeerAuthClientState.RecvResult(aResultBufP, aResultBufLen); printf("PeerAuthClientState::RecvResult: %s.\n", WONErrorToString(aError)); return aError; }