使用ACE_SOCK_SEQPACK_Association获取socket连接的本地及远程IP端口信息
int connect(const std::string& ip, int port)
{
? ? ACE_INET_Addr portAddr(port, ip.c_str());
? ? ACE_SOCK_Connector connector;
? ? ACE_SOCK_Stream peer;
? ? if (-1 == connector.connect(peer, portAddr))
? ? {
? ? ? ? std::cout << "連接服務器(" << ip << ":" << port << ")失敗: " << ACE_OS::strerror(ACE_OS::last_error()) << std::endl;
? ? ? ? return -1;
? ? }
? ? ACE_INET_Addr local;
? ? size_t addr_size = 1;
? ? ACE_SOCK_SEQPACK_Association ssa(peer.get_handle());
? ? ssa.get_local_addrs(&local, addr_size); // 獲取連接本地的IP和端口
? ? char buff[64] = { 0 };
? ? local.addr_to_string(buff, 63); // 格式為IP:Port
? ? std::cout << buff << std::endl;
? ? ACE_INET_Addr remote;
? ? addr_size = 1;
? ? ssa.get_remote_addrs(&remote, addr_size); // 獲取連接遠端的IP和端口
? ? ACE_OS::memset(buff, 0, 64);
? ? local.addr_to_string(buff, 63); // 格式為IP:Port
? ? std::cout << buff << std::endl;
? ? return 0;
}
轉載于:https://www.cnblogs.com/panjianfeng1979/archive/2013/05/10/3070634.html
總結
以上是生活随笔為你收集整理的使用ACE_SOCK_SEQPACK_Association获取socket连接的本地及远程IP端口信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字符搜索正则表达式语法详解
- 下一篇: 一颗导弹多少钱啊?