// // Created by zx on 2020/6/10. // #include "nnxx_server.h" Server::Server() { m_service_thread= nullptr; m_socket=nnxx::socket{nnxx::SP_RAW, nnxx::REP}; } Server::~Server() { mb_close=true; if(m_service_thread!= nullptr) { if(m_service_thread->joinable()) { m_service_thread->join(); } delete m_service_thread; m_service_thread= nullptr; } m_socket.close(); } bool Server::bind(std::string connect_str) { m_socket.bind(connect_str); mb_close=false; m_service_thread=new std::thread(service_handle,this); } bool Server::service_response(nnxx::message& message,nnxx::message_control& c1) { static int response_num=0; std::string msg=to_string(message); std::cout<<" recieve request : "<mb_close==false) { //非阻塞式读取 nnxx::message msg = pServer->m_socket.recv(1, msg_control); if(msg.size()!=0) pServer->service_response(msg,msg_control); std::this_thread::yield(); } }