我正在尝试使用TCP从客户端和服务器发送和接收消息.我正在尝试使用线程,我根本不知道如何执行此操作.我可以很好地连接到服务器,但我需要能够根据需要从两个地方发送和接收消息.我一直在搜索几个小时并且空洞,因为Google上的所有结果都过于复杂和混乱.
struct Client
{
boost::asio::ip::tcp::socket socket;
Client(const char* host = HOST, const char* port = PORT) : socket(io_service)
{
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::iterator endpoint = resolver.resolve(boost::asio::ip::tcp::resolver::query(HOST, PORT));
boost::asio::connect(this->socket, endpoint);
};
};
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止为客户所做的一切.
对于服务器:
const int PORT = 52275;
int main()
{
try
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::acceptor acceptor(io_service, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), PORT));
{
boost::asio::ip::tcp::socket socket(io_service);
acceptor.accept(socket);
main();
}
}
catch (std::exception& e)
{
std::cerr << "Exception: " << e.what() << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)