本文整理汇总了C++中ACE_INET_Addr::set_port_number方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_INET_Addr::set_port_number方法的具体用法?C++ ACE_INET_Addr::set_port_number怎么用?C++ ACE_INET_Addr::set_port_number使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_INET_Addr
的用法示例。
在下文中一共展示了ACE_INET_Addr::set_port_number方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: me
int
ACE_MEM_Addr::same_host (const ACE_INET_Addr &sap)
{
ACE_TRACE ("ACE_MEM_Addr::same_host");
// ACE_INET_Addr::operator== takes port number into account, so get
// the addresses without a port number and compare.
ACE_INET_Addr me (this->external_);
ACE_INET_Addr you (sap);
me.set_port_number (0);
you.set_port_number (0);
return me == you;
}
示例2: send_dgram
int send_dgram (ACE_SOCK_Dgram &socket, ACE_INET_Addr addr, int done = 0)
{
// Send each message twice, once to the right port, and once to the "wrong"
// port. This helps generate noise and lets us see if port filtering is
// working properly.
const char *address = addr.get_host_addr ();
int port = addr.get_port_number ();
for (int i = 0; i < 2; ++i)
{
char buf[MAX_STRING_SIZE];
if (done)
buf[0] = 0;
else
ACE_OS::sprintf (buf, "%s/%d", address, port);
if (socket.send (buf, ACE_OS::strlen (buf),addr) == -1)
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Send to %C, %p\n"),
address,
ACE_TEXT ("send_dgram - error calling send on ")
ACE_TEXT ("ACE_SOCK_Dgram.")), -1);
addr.set_port_number (++port);
}
return 0;
}
示例3: DeviceProxy
// static
DeviceProxy *
DeviceProxy::check_hello_and_create( ACE_Message_Block * mb
, const ACE_INET_Addr& from_addr
, Task * task )
{
adportable::protocol::LifeCycleData data;
adportable::protocol::LifeCycleFrame frame;
if ( acewrapper::lifecycle_frame_serializer::unpack( mb, frame, data ) ) {
try {
using namespace adportable::protocol;
LifeCycle_Hello& hello = boost::get< LifeCycle_Hello& >(data);
ACE_INET_Addr addr;
addr.string_to_addr( hello.ipaddr_.c_str() );
if ( addr.get_ip_address() == 0 ) {
addr = from_addr;
addr.set_port_number( hello.portnumber_ );
DeviceProxy * p = new DeviceProxy( addr, task );
p->initialize_dgram();
p->handle_lifecycle_mcast( frame, data );
#if defined _DEBUG
// std::wstring key = adportable::string::convert( acewrapper::string( from_addr ) );
std::wstring text = adportable::string::convert( LifeCycleHelper::to_string( data ) );
task->dispatch_debug( text, p->name() );
#endif
return p; // error should be handled by caller
}
} catch ( std::bad_cast& ) {
}
}
return 0;
}
示例4:
int
TAO::SSLIOP::Acceptor::open (TAO_ORB_Core *orb_core,
ACE_Reactor *reactor,
int major,
int minor,
const char *address,
const char *options)
{
// Ensure that neither the endpoint configuration nor the ORB
// configuration violate security measures.
if (this->verify_secure_configuration (orb_core,
major,
minor) != 0)
return -1;
ACE_INET_Addr addr;
ACE_CString specified_hostname;
if (this->parse_address (address, addr, specified_hostname) == -1)
return -1;
// Open the non-SSL enabled endpoints, then open the SSL enabled
// endpoints.
if (this->IIOP_SSL_Acceptor::open (orb_core,
reactor,
major,
minor,
address,
options) != 0)
return -1;
// The SSL port is set in the parse_options() method. All we have
// to do is call open_i()
addr.set_port_number (this->ssl_component_.port);
return this->ssliop_open_i (orb_core,
addr,
reactor);
}
示例5: LoadRealmlist
void AuthSocket::LoadRealmlist(ByteBuffer& pkt, uint32 acctid)
{
RealmList::RealmListIterators iters;
iters = sRealmList.GetIteratorsForBuild(_build);
uint32 numRealms = sRealmList.NumRealmsForBuild(_build);
ACE_INET_Addr clientAddr;
peer().get_remote_addr(clientAddr);
switch (_build)
{
case 5875: // 1.12.1
case 6005: // 1.12.2
case 6141: // 1.12.3
{
pkt << uint32(0); // unused value
pkt << uint8(numRealms);
for (RealmList::RealmStlList::const_iterator itr = iters.first;
itr != iters.second;
++itr)
{
clientAddr.set_port_number((*itr)->ExternalAddress.get_port_number());
uint8 AmountOfCharacters;
// No SQL injection. id of realm is controlled by the database.
QueryResult* result = LoginDatabase.PQuery("SELECT numchars FROM realmcharacters WHERE realmid = '%d' AND acctid='%u'", (*itr)->m_ID, acctid);
if (result)
{
Field* fields = result->Fetch();
AmountOfCharacters = fields[0].GetUInt8();
delete result;
}
else
AmountOfCharacters = 0;
bool ok_build = std::find((*itr)->realmbuilds.begin(), (*itr)->realmbuilds.end(), _build) != (*itr)->realmbuilds.end();
RealmBuildInfo const* buildInfo = ok_build ? FindBuildInfo(_build) : NULL;
if (!buildInfo)
buildInfo = &(*itr)->realmBuildInfo;
RealmFlags realmflags = (*itr)->realmflags;
// 1.x clients not support explicitly REALM_FLAG_SPECIFYBUILD, so manually form similar name as show in more recent clients
std::string name = (*itr)->name;
if (realmflags & REALM_FLAG_SPECIFYBUILD)
{
char buf[20];
snprintf(buf, 20, " (%u,%u,%u)", buildInfo->major_version, buildInfo->minor_version, buildInfo->bugfix_version);
name += buf;
}
// Show offline state for unsupported client builds and locked realms (1.x clients not support locked state show)
if (!ok_build || ((*itr)->allowedSecurityLevel > _accountSecurityLevel))
realmflags = RealmFlags(realmflags | REALM_FLAG_OFFLINE);
pkt << uint32((*itr)->icon); // realm type
pkt << uint8(realmflags); // realmflags
pkt << name; // name
pkt << GetAddressString(GetAddressForClient((**itr), clientAddr)); // address
pkt << float((*itr)->populationLevel);
pkt << uint8(AmountOfCharacters);
pkt << uint8((*itr)->timezone); // realm category
pkt << uint8(0x00); // unk, may be realm number/id?
}
pkt << uint16(0x0002); // unused value (why 2?)
break;
}
case 8606: // 2.4.3
case 10505: // 3.2.2a
case 11159: // 3.3.0a
case 11403: // 3.3.2
case 11723: // 3.3.3a
case 12340: // 3.3.5a
case 13623: // 4.0.6a
case 15050: // 4.3.0
case 15595: // 4.3.4
case 16357: // 5.1.0
case 16992: // 5.3.0
case 17055: // 5.3.0
case 17116: // 5.3.0
case 17128: // 5.3.0
case 17538: // 5.4.1
case 17658: // 5.4.2
case 17688: // 5.4.2a
case 17898: // 5.4.7
case 17930: // 5.4.7
case 17956: // 5.4.7
case 18019: // 5.4.7
case 18291: // 5.4.8
case 18414: // 5.4.8
default: // and later
{
pkt << uint32(0); // unused value
pkt << uint16(numRealms);
for (RealmList::RealmStlList::const_iterator itr = iters.first;
//.........这里部分代码省略.........