本文整理汇总了C++中boost::asio::ip::tcp::socket::close方法的典型用法代码示例。如果您正苦于以下问题:C++ socket::close方法的具体用法?C++ socket::close怎么用?C++ socket::close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost::asio::ip::tcp::socket
的用法示例。
在下文中一共展示了socket::close方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
~WSClientImpl() override
{
ws_.close({});
stream_.close();
work_ = boost::none;
thread_.join();
}
示例2:
inline connection::~connection()
{
socket_m.close();
read_thread_m.join();
send_thread_m.join();
}
示例3: DoConnect
//===========================================================================
void CHttpClient::DoConnect (
const boost::system::error_code & err,
boost::asio::ip::tcp::resolver::iterator iter
) {
if (err) {
if (iter != boost::asio::ip::tcp::resolver::iterator()) {
m_socket.close();
boost::asio::ip::tcp::endpoint endPoint = *iter;
auto handler = boost::bind(
&CHttpClient::DoConnect,
this,
boost::asio::placeholders::error,
++iter
);
m_socket.async_connect(endPoint, handler);
} else {
printf("%s\n", __FUNCTION__);
cout<<"Error: "<<err.message()<<endl;
}
return;
}
auto handler = boost::bind(
&CHttpClient::DoWriteRequest,
this,
boost::asio::placeholders::error
);
boost::asio::async_write(m_socket, m_request, handler);
}
示例4: Run
int Run()
{
// ----------- Thread_TcpCommClient_Recv -----------
int iParam1 = 0;
pthread_t pthread_TcpCommClient_Recv;
if(pthread_create(&pthread_TcpCommClient_Recv, NULL, Thread_TcpCommClient_Recv, (void*)this) != 0)
{
printf("Failed:Thread_TcpCommClient_Recv\n");
}
else
{
printf("Initiate:Thread_TcpCommClient_Recv\n");
usleep(100000);
}
// ----------- Thread_TcpCommClient_Send -----------
int iParam2 = 0;
pthread_t pthread_TcpCommClient_Send;
if(pthread_create(&pthread_TcpCommClient_Send, NULL, Thread_TcpCommClient_Send, (void*)this) != 0)
{
printf("Failed:Thread_TcpCommClient_Send\n");
}
else
{
printf("Initiate:Thread_TcpCommClient_Send\n");
usleep(100000);
}
while( ros::ok() )
{
ros::spinOnce();
usleep(30000);
}
if( m_Socket.is_open() )
{
m_Socket.close();
}
return 0;
}
示例5: doReadHeader
void doReadHeader(){
boost::asio::async_read(_socket,
boost::asio::buffer(_data, sizeof(MktDataGlobalHeaderMsg) + sizeof(char)),
[this](boost::system::error_code ec, std::size_t length)
{
if (!ec)
{
MktDataGlobalHeaderMsg* header = new MktDataGlobalHeaderMsg;
memcpy((void*)header, (void*)(_data), sizeof(MktDataGlobalHeaderMsg));
char* msgType = new char;
memcpy((void*)msgType, (void*)(_data + sizeof(MktDataGlobalHeaderMsg)), sizeof(char));
std::cout << " Packet#: " << ++pcount << std::endl;
doReadBody(header, msgType);
}
else
{
std::cout << "Exception comes - Socket Closed. " << std::endl;
_socket.close();
}
});
}
示例6: disconnect
virtual void disconnect() {
try {
socket_.close();
} catch (std::exception& e) { }
}
示例7: close_socket
void close_socket()
{
BOOST_CHECK_NO_THROW( socket_.close() );
BOOST_CHECK_NO_THROW( acceptor_.close() );
}
示例8:
~Client() {
if (mSocket.is_open()) mSocket.close();
}
示例9: doReadBody
void doReadBody(MktDataGlobalHeaderMsg* header, char* msgType){
switch(*msgType){
case 'N':
case 'M':
case 'X':
case 'G':
case 'H':
case 'J':
{
boost::asio::async_read(_socket,
boost::asio::buffer(_data, sizeof(MktDataOrderMsg)),
[this, &header, &msgType](boost::system::error_code ec, std::size_t length)
{
if(!ec){
MktDataOrderMsg* body = new MktDataOrderMsg;
memcpy((void*)body, (void*)_data, sizeof(MktDataOrderMsg));
Order::SharedPtr order(new SimpleOrder(*header, *msgType, *body));
{
std::string str;
try{
LatencyChecker<> lc(str);
_orderBookManager.addOrder(order);
}catch(const std::runtime_error& err){
std::cout << " Exception " << err.what() << std::endl;
}
order->toString(str);
_orderBookManager.printOrderBookForSymbol(str, body->_toeknNo);
_logger.log(std::move(str));
}
delete body;
doReadHeader();
}else{
std::cout << "Exception comes - Socket Closed. " << std::endl;
_socket.close();
}
});
}
break;
case 'T':
case 'K':
{
boost::asio::async_read(_socket,
boost::asio::buffer(_data, sizeof(MktDataTradeMsg)),
[this, &header, &msgType](boost::system::error_code ec, std::size_t length)
{
if(!ec){
MktDataTradeMsg* body = new MktDataTradeMsg;
memcpy((void*)body, (void*)_data, sizeof(MktDataTradeMsg));
Trade::SharedPtr trade(new SimpleTrade(*header, *msgType, *body));
{
std::string str;
try{
LatencyChecker<> lc(str);
_orderBookManager.addTrade(trade);
}catch(const std::runtime_error& err){
std::cout << " Exception " << err.what() << std::endl;
}
trade->toString(str);
_orderBookManager.printOrderBookForSymbol(str, body->_toeknNo);
_logger.log(std::move(str));
}
delete body;
doReadHeader();
}else{
std::cout << "Exception comes - Socket Closed. " << std::endl;
_socket.close();
}
});
}
break;
default:
std::cout << " Error: Unknown Packet comes.... " << std::endl;
break;
}
}
示例10: refuseAccept
void Server::refuseAccept(boost::asio::ip::tcp::socket socket)
{
socket.close();
}