Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2014, 17:17   #1
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию boost/asio

Приветствую всех, подскажите хотя бы примерно.
Предположим что на данный момент работает такой daytime server, это пример из учебника по библиотеке boost/asio.hpp:

Код:
int main() {

	try {
	
		boost::asio::io_service io_service;
		
		tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), 13));
		
		for(;;) {
		
			tcp::socket socket(io_service);
			acceptor.accept(socket);
			
			std::string message = make_daytime_string();
			
			boost::system::error_code ignored_error;
			boost::asio::write(socket, boost::asio::buffer(message), ignored_error);
			std::cout << "!\n";
		}
	}
	catch(std::exception &e) {
	
		std::cerr << e.what() << std::endl;
	}
	
	return 0;
}
Когда происходит подключение клиента, сервер отправляет в сокет строку, я же хочу узнать временный порт который создается со стороны клиента, в основном но роутере, сервер видимо знает его автоматически, каким образом его можно "вывести" в память, чтобы был под рукой?
То есть (клиент ---> сервер) это например адрес сервера и 13 порт,
а я хочу узнать (сервер ---> клиент) это какойто временный порт, и адрес внешней точки, какогото роутера, или модема.
MayhemWithMercy вне форума Ответить с цитированием
Старый 11.06.2014, 17:44   #2
MayhemWithMercy
Пользователь
 
Регистрация: 17.08.2012
Сообщений: 23
По умолчанию

Нашел ответ, в общем ясен пень что так можно сделать, я просто не супер шарю буст, кароче вдруг пригодится кому

Код:
std::string sClientIp = socket.remote_endpoint().address().to_string();
unsigned short uiClientPort = socket.remote_endpoint().port();
MayhemWithMercy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Audio Stream Input/Output (ASIO) Spl@sh Общие вопросы C/C++ 0 27.04.2012 13:30
Заполнить boost::bimap используя boost::assign Diego__ Общие вопросы C/C++ 2 18.02.2012 16:48
boost ASIO сериализация Kukurudza Общие вопросы C/C++ 2 06.12.2011 13:38
Boost::Asio on Mingw russian-stalker Общие вопросы C/C++ 0 05.01.2011 16:27
Boost (asio + thread) - noncopyable MInner Общие вопросы C/C++ 1 06.12.2009 16:41