28 #include <boost/asio.hpp>
87 boost::system::error_code ec;
88 m_socket.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
100 asio::ip::tcp::resolver::query query(host, stdext::unsafe_cast<std::string>(port));
104 m_readTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(READ_TIMEOUT)));
113 m_readTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(READ_TIMEOUT)));
137 os.write((
const char*)buffer, size);
154 m_writeTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(WRITE_TIMEOUT)));
170 m_readTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(READ_TIMEOUT)));
187 m_readTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(READ_TIMEOUT)));
202 m_readTimer.expires_from_now(boost::posix_time::seconds(
static_cast<uint32>(READ_TIMEOUT)));
206 void Connection::onResolve(
const boost::system::error_code& error, asio::ip::basic_resolver<asio::ip::tcp>::iterator endpointIterator)
210 if (error == asio::error::operation_aborted)
224 if (error == asio::error::operation_aborted)
231 boost::asio::ip::tcp::no_delay option(
true);
247 if (error == asio::error::operation_aborted)
254 void Connection::onWrite(
const boost::system::error_code& error,
size_t, std::shared_ptr<asio::streambuf> outputStream)
258 if (error == asio::error::operation_aborted)
262 outputStream->consume(outputStream->size());
274 if (error == asio::error::operation_aborted)
280 const char* header = boost::asio::buffer_cast<const char*>(
m_inputStream.data());
294 if (error == asio::error::operation_aborted)
302 if (error == asio::error::operation_aborted)
314 boost::system::error_code error;
315 const boost::asio::ip::tcp::endpoint ip =
m_socket.remote_endpoint(error);
317 return boost::asio::detail::socket_ops::host_to_network_long(ip.address().to_v4().to_ulong());