Я изучаю boost/asio ad написал 2 программы (клиент и сервер) из электронной книги с небольшими изменениями. В основном он должен подключаться к моему серверу. Когда я пытаюсь подключиться к внешнему миру (какой-то случайный http-сервер), все хорошо, и он работает, но когда я меняю назначение на «localhost: 40002», он говорит о недопустимом аргументе.C++ boost/asio клиент не подключается к серверу
код клиента:
#include <boost/asio.hpp>
#include <iostream>
int main() {
try {
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver::query query("localhost", 40002);
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::iterator destination = resolver.resolve(query);
boost::asio::ip::tcp::resolver::iterator end ;
boost::asio::ip::tcp::endpoint endpoint;
while (destination != end) {
endpoint = *destination++;
std::cout<<endpoint<<std::endl;
}
boost::asio::ip::tcp::socket socket(io_service);
socket.connect(endpoint);
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}
я сделал «NETSTAT -l», и он показал, что я по-настоящему слушать мой порт так сервер я думаю, что работает на но не менее они не связывают
код сервера:
#include <boost/asio.hpp>
#include <iostream>
#include <string>
#include <ctime>
std::string time_string()
{
using namespace std;
time_t now = time(0);
return ctime(&now);
}
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(), 40002));
for (; ;) {
std::cout<<"Listening to"<<std::endl;
boost::asio::ip::tcp::socket socket(io_service);
acceptor.accept(socket);
std::string message = time_string();
boost::system::error_code ignored_error;
boost::asio::write(socket, boost::asio::buffer(message), boost::asio::transfer_all(), ignored_error);
}
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
return 0;
}
Может кто-то намекнуть, почему соединение не происходит
+1 для отправки кода примера, который компилируется, облегчил ответ на ваш вопрос. –