Esempio n. 1
0
std::shared_ptr<chat::user> accept_user(tool::acceptor& acceptor)
{
	const size_t buf_size = 46;
	char buf[buf_size] = { 0 };

	auto from_user = std::make_shared<tool::socket>();
	auto to_user = std::make_shared<tool::socket>();
	auto to_user_names = std::make_shared<tool::socket>();

	tool::error_code err = acceptor.accept(from_user.get());
	if (err != tool::error_code::NO_ERR)
		printf("node 1 error_code: %s\n", tool::error_to_string(err));

	from_user->remote_address(buf, buf_size);
	printf("node 1: %s:%d\n", buf, from_user->remote_port());

	err = acceptor.accept(to_user.get());
	if (err != tool::error_code::NO_ERR)
		printf("node 2 error_code: %s\n", tool::error_to_string(err));

	to_user->remote_address(buf, buf_size);
	printf("node 2: %s:%d\n", buf, to_user->remote_port());

	err = acceptor.accept(to_user_names.get());
	if (err != tool::error_code::NO_ERR)
		printf("node 3 error_code: %s\n", tool::error_to_string(err));

	to_user_names->remote_address(buf, buf_size);
	printf("node 3: %s:%d\n", buf, to_user_names->remote_port());

	return std::make_shared<chat::user>(from_user, to_user, to_user_names);
}
Esempio n. 2
0
	std::string str_remote_port(void) const
	{
		std::stringstream ss;
		ss << remote_port();
		return ss.str();
	}
Esempio n. 3
0
	Socket_Info remote_socket_info(void) const
	{
		return Socket_Info(remote_address(), remote_port());
	}