我試圖使用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