Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 17:27
Boost (asio + thread) - noncopyable MInner Общие вопросы C/C++ 1 06.12.2009 17:41


23:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.