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;
}