本文整理汇总了C++中TCPSocket::read_nonblock方法的典型用法代码示例。如果您正苦于以下问题:C++ TCPSocket::read_nonblock方法的具体用法?C++ TCPSocket::read_nonblock怎么用?C++ TCPSocket::read_nonblock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TCPSocket
的用法示例。
在下文中一共展示了TCPSocket::read_nonblock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update_client
//-----------------------------------------------------------------------------
ReadResult ConsoleServer::update_client(TCPSocket client)
{
uint32_t msg_len = 0;
ReadResult rr = client.read_nonblock(&msg_len, 4);
// If no data received, return
if (rr.error == ReadResult::NO_ERROR && rr.bytes_read == 0) return rr;
if (rr.error == ReadResult::REMOTE_CLOSED) return rr;
if (rr.error != ReadResult::NO_ERROR) return rr;
// Else read the message
Array<char> msg_buf(default_allocator());
array::resize(msg_buf, msg_len);
ReadResult msg_result = client.read(array::begin(msg_buf), msg_len);
array::push_back(msg_buf, '\0');
if (msg_result.error == ReadResult::REMOTE_CLOSED) return msg_result;
if (msg_result.error != ReadResult::NO_ERROR) return msg_result;
process(client, array::begin(msg_buf));
return msg_result;
}