我试图使用TCP发送和接收来自客户端和服务器的消息。我正在尝试使用线程,并且我不知道如何执行此操作。我可以很好地连接到服务器,但我需要能够根据需要发送和接收来自两个地方的消息。由于Google上的所有结果都过于复杂和混乱,因此我一直在寻找几个小时并空洞起来。增强asio发送和接收消息
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);
};
};
这就是我迄今为止的客户。
对于服务器:
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;
}
}
你会在这里解决的所有结果,你会发现“过度复杂和杂乱”。出于简单的原因,它们也不一定适合您的参考/代码上下文框架。主要原因是:你不会分享任何你的上下文代码。 (现在,你是安全的,因为**没有人会花一个小时为你重新创造这些例子之一,只是因为你不喜欢现有的样本,那样会浪费时间。 _) – sehe
我并不是要求为我重新创建完整的解释,而是一个简单的示例或对通信的解释。我试着调整我找到的例子,但所有这些都导致了错误。我不是C++方面的专家,但我不是很新,我需要为我做的一切。几乎没有记录提升阿西奥。 –
[真的](http://paste.ubuntu.com/9632633/)?正如你在你的问题中提到的那样,你要求的东西存在于许多地方。 SO是一个你问具体编程问题的地方。所以,告诉我们你被困在什么地方。我们不打算google没有任何上下文的好例子。你可以做得更好。 – sehe