本文整理汇总了C++中ip::tcp::socket::read_some方法的典型用法代码示例。如果您正苦于以下问题:C++ socket::read_some方法的具体用法?C++ socket::read_some怎么用?C++ socket::read_some使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ip::tcp::socket
的用法示例。
在下文中一共展示了socket::read_some方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: get_public_key_resp
ed_key c_netuser::get_public_key_resp(ip::tcp::socket &socket_) {
DBG_MTX(dbg_mtx, "START");
assert(socket_.is_open());
boost::system::error_code ec;
char header[2];
DBG_MTX(dbg_mtx, "read header");
size_t pkresp = socket_.read_some(buffer(header, 2), ec);
DBG_MTX(dbg_mtx, "pk: " << pkresp << ":[" <<header[0] << header[1] << "]");
DBG_MTX(dbg_mtx, "read public key size");
size_t pub_key_size = 4;
uint32_t key_size = 0;
size_t recieved_bytes = socket_.read_some(buffer(&key_size, pub_key_size), ec);
DBG_MTX(dbg_mtx, "size:" << recieved_bytes << ":[" <<key_size << "]");
assert(recieved_bytes == pub_key_size);
const std::unique_ptr<unsigned char[]> pub_key_data(new unsigned char[key_size]);
DBG_MTX(dbg_mtx, "read public key data");
recieved_bytes = socket_.read_some(buffer(pub_key_data.get(), key_size), ec);
DBG_MTX(dbg_mtx, "data:" << recieved_bytes << ":[" << ed_key(pub_key_data.get(),recieved_bytes) << "]");
assert(recieved_bytes == key_size);
ed_key pub_key(pub_key_data.get(), key_size);
DBG_MTX(dbg_mtx, "END");
return pub_key;
}
示例2: recv_coin
string c_netuser::recv_coin(ip::tcp::socket &socket_) {
DBG_MTX(dbg_mtx, "START");
assert(socket_.is_open());
boost::system::error_code ec;
size_t recieved_bytes = 0;
uint32_t coin_size = 0;
recieved_bytes = socket_.read_some(buffer(&coin_size, 4), ec);
DBG_MTX(dbg_mtx, "get " << recieved_bytes << " bytes");
assert(recieved_bytes == 4);
const std::unique_ptr<char[]> coin_data(new char[coin_size]);
recieved_bytes = socket_.read_some(buffer(coin_data.get(), coin_size), ec);
assert(recieved_bytes == coin_size);
return std::string(coin_data.get(), coin_size);
}
示例3: server_read
void c_netuser::server_read(ip::tcp::socket socket_) {
DBG_MTX(dbg_mtx, "START");
assert(socket_.is_open());
boost::system::error_code ec;
DBG_MTX(dbg_mtx,"server read");
while (!ec && !m_stop_flag) {
char header[2] = {0, 0};
socket_.read_some(buffer(header, 2), ec);
if (header[0] == 'p' && header[1] == 'k') {
send_public_key_resp(socket_);
}
else if (header[0] == '$' && header[1] == 't') {
std::string coin_data = recv_coin(socket_);
recieve_from_packet(coin_data);
}
}
socket_.close();
}