int CGMP::UDTsend(const char* ip, const int& port, CGMPMessage* msg) { Transport t; if (t.open(m_iUDTReusePort, false, true) < 0) return -1; if (t.connect(ip, port) < 0) { t.close(); return -1; } if ((t.send((char*)(&m_iPort), 4) < 0) || (t.send((char*)(msg->m_piHeader), 16) < 0) || (t.send((char*)&(msg->m_iLength), 4) < 0)) { t.close(); return -1; } if (t.send(msg->m_pcData, msg->m_iLength) < 0) { t.close(); return -1; } t.close(); return 16 + msg->m_iLength; }
void run(){ server.send(Json::Value::null,ACTION_GET_GAMES,true); Json::Value games = server.get_response(ACTION_GAME_LIST); cout << games.toStyledString(); cout << "enter session_key: "; string key; cin >> key; if(key == "-1") server.send(Json::Value::null,ACTION_NEW_GAME,false,true); else{ SESSION_KEY = key; Json::Value select_query; select_query["game"] = key; server.send(select_query,ACTION_SELECT_GAME,false,true,true); } string session_key = server.get_response(ACTION_GAME_SESSION)["session_key"].asString(); SESSION_KEY = session_key; server.subscribe(SESSION_KEY); // TODO put the stuffs here Json::Value data; data["x"] = 10; data["y"] = 20; data["gold"] = 200; server.send(data,ACTION_EVENT,false,true,true,true); }
// onInterest. void operator() (const shared_ptr<const Name>& prefix, const shared_ptr<const Interest>& interest, Transport& transport, uint64_t registeredPrefixId) { ++responseCount_; // Make and sign a Data packet. Data data(interest->getName()); string content(string("Echo ") + interest->getName().toUri()); data.setContent((const uint8_t *)&content[0], content.size()); data.getMetaInfo().setTimestampMilliseconds(time(NULL) * 1000.0); keyChain_.sign(data, certificateName_); Blob encodedData = data.wireEncode(); cout << "Sent content " << content << endl; transport.send(*encodedData); }