本文整理汇总了C++中OutPacket函数的典型用法代码示例。如果您正苦于以下问题:C++ OutPacket函数的具体用法?C++ OutPacket怎么用?C++ OutPacket使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OutPacket函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: swap32
void WorldSession::HandleIgnoreTrade(WorldPacket & recv_data)
{
if(!_player->IsInWorld()) return;
uint32 TradeStatus = TRADE_STATUS_PLAYER_IGNORED;
Player * plr = _player->GetTradeTarget();
if(_player->mTradeTarget == 0 || plr == 0)
{
#ifdef USING_BIG_ENDIAN
TradeStatus = swap32(uint32(TRADE_STATUS_PLAYER_NOT_FOUND));
#else
TradeStatus = TRADE_STATUS_PLAYER_NOT_FOUND;
#endif
OutPacket(TRADE_STATUS_PLAYER_NOT_FOUND, 4, &TradeStatus);
return;
}
#ifdef USING_BIG_ENDIAN
swap32(&TradeStatus);
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
swap32(&TradeStatus);
#else
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
#endif
plr->mTradeStatus = TradeStatus;
_player->mTradeStatus = TradeStatus;
plr->mTradeTarget = 0;
_player->mTradeTarget = 0;
}
开发者ID:wow4all,项目名称:wowtbc,代码行数:33,代码来源:TradeHandler.cpp
示例2: ASSERT
void WorldSocket::Authenticate()
{
WorldSession * pSession = mSession;
ASSERT(pAuthenticationPacket);
mQueued = false;
if(!pSession) return;
pSession->deleteMutex.Acquire();
if(pSession->HasFlag(ACCOUNT_FLAG_XPACK_01))
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x01");
else
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x00");
sAddonMgr.SendAddonInfoPacket(pAuthenticationPacket, (uint32)pAuthenticationPacket->rpos(), pSession);
pSession->_latency = _latency;
delete pAuthenticationPacket;
pAuthenticationPacket = 0;
if(mSession)
{
sWorld.AddSession(mSession);
sWorld.AddGlobalSession(mSession);
/* if(pSession->HasFlag(ACCOUNT_FLAG_XTEND_INFO))
sWorld.AddExtendedSession(pSession);*/
if(pSession->HasGMPermissions() && mSession)
sWorld.gmList.insert(pSession);
}
pSession->deleteMutex.Release();
}
开发者ID:AwkwardDev,项目名称:ascent_classic,代码行数:34,代码来源:WorldSocket.cpp
示例3: ASSERT
void WorldSocket::Authenticate()
{
WorldSession * pSession = mSession;
ASSERT(pAuthenticationPacket);
mQueued = false;
if(!pSession)
{
DEBUG_LOG( "WorldSocket","Lost Session");
return;
}
if(pSession->HasFlag(ACCOUNT_FLAG_XPACK_02))
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x02");
else if(pSession->HasFlag(ACCOUNT_FLAG_XPACK_01))
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x01");
else
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x00");
sAddonMgr.SendAddonInfoPacket(pAuthenticationPacket, (uint32)pAuthenticationPacket->rpos(), pSession);
pSession->_latency = _latency;
delete pAuthenticationPacket;
pAuthenticationPacket = NULL;
sWorld.AddSession(pSession);
sWorld.AddGlobalSession(pSession);
}
开发者ID:h4s0n,项目名称:Sandshroud,代码行数:28,代码来源:WorldSocket.cpp
示例4: OutPacket
void WorldSession::HandleBusyTrade(WorldPacket & recv_data)
{
CHECK_INWORLD_RETURN
uint32 TradeStatus = TRADE_STATUS_PLAYER_BUSY;
Player* plr = _player->GetTradeTarget();
if(_player->mTradeTarget == 0 || plr == 0)
{
TradeStatus = TRADE_STATUS_PLAYER_NOT_FOUND;
OutPacket(TRADE_STATUS_PLAYER_NOT_FOUND, 4, &TradeStatus);
return;
}
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->mTradeStatus = TradeStatus;
_player->mTradeStatus = TradeStatus;
plr->mTradeTarget = 0;
_player->mTradeTarget = 0;
}
开发者ID:Selenah,项目名称:ArcEmu,代码行数:26,代码来源:TradeHandler.cpp
示例5: CHECK_PACKET_SIZE
void WorldSession::HandleClearTradeItem(WorldPacket & recv_data)
{
CHECK_PACKET_SIZE(recv_data, 1);
if(_player->mTradeTarget == 0)
return;
uint8 TradeSlot = recv_data.contents()[0];
if(TradeSlot > 6)
return;
// clean status
Player * plr = _player->GetTradeTarget();
if ( !plr ) return;
uint32 TradeStatus = TRADE_STATUS_STATE_CHANGED;
#ifdef USING_BIG_ENDIAN
swap32(&TradeStatus);
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
swap32(&TradeStatus);
#else
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
#endif
plr->mTradeStatus = TradeStatus;
_player->mTradeStatus = TradeStatus;
_player->mTradeItems[TradeSlot] = 0;
_player->SendTradeUpdate();
}
开发者ID:wow4all,项目名称:wowtbc,代码行数:33,代码来源:TradeHandler.cpp
示例6: OutPacket
void WorldSession::HandleLfgInviteAccept(WorldPacket & recvPacket)
{
CHECK_INWORLD_RETURN;
_player->PartLFGChannel();
if(_player->m_lfgMatch == NULL && _player->m_lfgInviterGuid == 0)
{
if(_player->m_lfgMatch == NULL)
OutPacket(SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER); // Matched Player(s) have gone offline.
else
OutPacket(SMSG_LFG_AUTOJOIN_FAILED); // Group no longer available.
return;
}
if( _player->m_lfgMatch != NULL )
{
// move into accepted players
_player->m_lfgMatch->lock.Acquire();
_player->m_lfgMatch->PendingPlayers.erase(_player);
if( !_player->GetGroup() )
{
_player->m_lfgMatch->AcceptedPlayers.insert(_player);
if(!_player->m_lfgMatch->PendingPlayers.size())
{
// all players have accepted
Group * pGroup = new Group(true);
for(set<Player*>::iterator itr = _player->m_lfgMatch->AcceptedPlayers.begin(); itr != _player->m_lfgMatch->AcceptedPlayers.end(); ++itr)
pGroup->AddMember((*itr)->m_playerInfo);
_player->m_lfgMatch->pGroup = pGroup;
}
}
_player->m_lfgMatch->lock.Release();
}
else
{
Player * pPlayer = objmgr.GetPlayer(_player->m_lfgInviterGuid);
if( pPlayer == NULL )
{
OutPacket(SMSG_LFG_AUTOJOIN_FAILED_NO_PLAYER); // Matched Player(s) have gone offline.
return;
}
if( pPlayer->GetGroup() == NULL || pPlayer->GetGroup()->IsFull() || pPlayer->GetGroup()->GetLeader() != pPlayer->m_playerInfo )
{
OutPacket(SMSG_LFG_AUTOJOIN_FAILED);
return;
}
pPlayer->GetGroup()->AddMember(_player->m_playerInfo);
}
_player->m_lfgInviterGuid = 0;
_player->m_lfgMatch = NULL;
}
开发者ID:Naqvamp,项目名称:Underworld_Core,代码行数:57,代码来源:LfgHandler.cpp
示例7: getMSTime
void WorldSocket::OnConnect()
{
sWorld.mAcceptedConnections++;
_latency = getMSTime();
#ifdef USING_BIG_ENDIAN
uint32 swapped = swap32(mSeed);
OutPacket(SMSG_AUTH_CHALLENGE, 4, &swapped);
#else
OutPacket(SMSG_AUTH_CHALLENGE, 4, &mSeed);
#endif
}
开发者ID:Zelgadisx5,项目名称:Arcemu-2.4.3,代码行数:12,代码来源:WorldSocket.cpp
示例8: GetPlayer
void WorldSession::HandleBeginTrade(WorldPacket & recv_data)
{
if(!_player->IsInWorld())
{
return;
}
#ifdef FORCED_GM_TRAINEE_MODE
if( CanUseCommand('k') && !HasGMPermissions() )
{
GetPlayer()->BroadcastMessage( "You are not allowed to use this feature" );
return;
}
#endif
if( sWorld.getIntRate( INTRATE_DISABLE_TRADE_FEATURE ) )
{
GetPlayer()->BroadcastMessage( "Trade feature is disabled right now" );
return;
}
sLog.outDebug( "WORLD: got CMSG_BEGIN_TRADE from player %s.", _player->GetName() );
packetSMSG_TRADE_STATUS data;
memset( &data, 0, sizeof( data ) );
data.trade_status = TRADE_STATUS_INITIATED;
data.trade_id = TRADE_ID_CONST; //this the constant used in status update also !
Player * plr = _player->GetTradeTarget();
if(_player->mTradeTarget == 0 || plr == 0)
{
data.trade_status = TRADE_STATUS_PLAYER_NOT_FOUND;
OutPacket(SMSG_TRADE_STATUS,sizeof( packetSMSG_TRADE_STATUS ), &data);
return;
}
// We're too far from target now?
Player * plr2 = objmgr.GetPlayer(_player->mTradeTarget);
if( plr2 == NULL )
{
return; //wtf ? player is inside the map and not in objectmanager ?
}
if( _player->CalcDistance( plr2 ) > 10.0f )
data.trade_status = TRADE_STATUS_TOO_FAR_AWAY;
//send to ourself
OutPacket(SMSG_TRADE_STATUS,sizeof( packetSMSG_TRADE_STATUS ), &data);
//send to our target
plr->m_session->OutPacket(SMSG_TRADE_STATUS,sizeof( packetSMSG_TRADE_STATUS ), &data);
plr->mTradeStatus = data.trade_status;
_player->mTradeStatus = data.trade_status;
// _player->SendTradeUpdate( 0 );
// plr->SendTradeUpdate( 0 );
}
开发者ID:AtVirus,项目名称:Descent-core,代码行数:51,代码来源:TradeHandler.cpp
示例9: OutPacket
void WorldSocket::Authenticate()
{
if(m_session->m_accountFlags & 16)
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x02");
else if(m_session->m_accountFlags & 8)
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x01");
else
OutPacket(SMSG_AUTH_RESPONSE, 11, "\x0C\x30\x78\x00\x00\x00\x00\x00\x00\x00\x00");
SendAddonInfoPacket(pAuthenticationPacket, (uint32)pAuthenticationPacket->rpos(), m_session);
delete pAuthenticationPacket;
pAuthenticationPacket = 0;
}
开发者ID:arcticdev,项目名称:arcticdev,代码行数:14,代码来源:WorldSocket.cpp
示例10: memset
void WorldSession::HandleCancelTrade(WorldPacket & recv_data)
{
if(!_player->IsInWorld())
{
return;
}
sLog.outDebug( "WORLD: got CMSG_CANCEL_TRADE from player %s.", _player->GetName() );
if(_player->mTradeTarget == 0 || _player->mTradeStatus == TRADE_STATUS_COMPLETE)
{
return;
}
packetSMSG_TRADE_STATUS data;
memset( &data, 0, sizeof( data ) );
data.trade_status = TRADE_STATUS_CANCELLED;
//send to ourself
OutPacket(SMSG_TRADE_STATUS,sizeof( packetSMSG_TRADE_STATUS ), &data);
Player * plr = _player->GetTradeTarget();
if(plr)
{
//send to our target
if(plr->m_session && plr->m_session->GetSocket())
plr->m_session->OutPacket(SMSG_TRADE_STATUS,sizeof( packetSMSG_TRADE_STATUS ), &data);
plr->ResetTradeVariables();
}
_player->ResetTradeVariables();
}
开发者ID:AtVirus,项目名称:Descent-core,代码行数:32,代码来源:TradeHandler.cpp
示例11: OutPacket
void WorldServerSocket::OnConnect()
{
sWorld.AcceptedConnections++;
_latency = (uint32)time(NULL);
OutPacket(SMSG_AUTH_CHALLENGE, 4, &mSeed);
}
开发者ID:DeaDSandro,项目名称:shadowfade,代码行数:7,代码来源:WorldServerSocket.cpp
示例12: swap32
void WorldSession::HandleCancelTrade(WorldPacket & recv_data)
{
if(!_player->IsInWorld()) return;
if(_player->mTradeTarget == 0 || _player->mTradeStatus == TRADE_STATUS_COMPLETE)
return;
#ifdef USING_BIG_ENDIAN
uint32 TradeStatus = swap32(uint32(TRADE_STATUS_CANCELLED));
#else
uint32 TradeStatus = TRADE_STATUS_CANCELLED;
#endif
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
Player * plr = _player->GetTradeTarget();
if(plr)
{
if(plr->m_session && plr->m_session->GetSocket())
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->mTradeTarget = 0;
plr->ResetTradeVariables();
}
_player->mTradeTarget = 0;
_player->ResetTradeVariables();
}
开发者ID:Chero,项目名称:abcwow,代码行数:27,代码来源:TradeHandler.cpp
示例13: OutPacket
void WorldSession::HandleBeginTrade(WorldPacket& recv_data)
{
CHECK_INWORLD_RETURN
uint32 TradeStatus = TRADE_STATUS_INITIATED;
Player* plr = _player->GetTradeTarget();
if (_player->mTradeTarget == 0 || plr == 0)
{
TradeStatus = TRADE_STATUS_PLAYER_NOT_FOUND;
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
return;
}
// We're too far from target now?
if (_player->CalcDistance(objmgr.GetPlayer(_player->mTradeTarget)) > 10.0f)
TradeStatus = TRADE_STATUS_TOO_FAR_AWAY;
WorldPacket data(SMSG_TRADE_STATUS, 8);
data << uint32(TradeStatus);
data << uint32(0x19);
plr->m_session->SendPacket(&data);
SendPacket(&data);
plr->mTradeStatus = TradeStatus;
_player->mTradeStatus = TradeStatus;
}
开发者ID:Nupper,项目名称:AscEmu,代码行数:31,代码来源:TradeHandler.cpp
示例14: CHECK_PACKET_SIZE
void WorldSession::HandlePlayerLoginOpcode( WorldPacket & recv_data )
{
CHECK_PACKET_SIZE(recv_data, 8);
uint64 playerGuid = 0;
sLog.outDebug( "WORLD: Recvd Player Logon Message" );
recv_data >> playerGuid; // this is the GUID selected by the player
if(objmgr.GetPlayer((uint32)playerGuid) != NULL || m_loggingInPlayer || _player)
{
// A character with that name already exists 0x3E
uint8 respons = CHAR_LOGIN_DUPLICATE_CHARACTER;
OutPacket(SMSG_CHARACTER_LOGIN_FAILED, 1, &respons);
return;
}
Player* plr = new Player((uint32)playerGuid);
ASSERT(plr);
plr->SetSession(this);
m_bIsWLevelSet = false;
Log.Debug("WorldSession", "Async loading player %u", (uint32)playerGuid);
m_loggingInPlayer = plr;
plr->LoadFromDB((uint32)playerGuid);
}
开发者ID:AwkwardDev,项目名称:ascent_classic,代码行数:25,代码来源:CharacterHandler.cpp
示例15: OutPacket
void WorldSession::HandleQuestgiverCancelOpcode(WorldPacket & recvPacket)
{
CHECK_INWORLD_RETURN
OutPacket(SMSG_GOSSIP_COMPLETE, 0, NULL);
LOG_DEBUG("WORLD: Sent SMSG_GOSSIP_COMPLETE");
}
开发者ID:Carbinfibre,项目名称:ArcPro,代码行数:8,代码来源:QuestHandler.cpp
示例16: swap32
//////////////////////////////////////////////////////////////
/// This function handles CMSG_QUERY_TIME:
//////////////////////////////////////////////////////////////
void WorldSession::HandleQueryTimeOpcode( WorldPacket & recv_data )
{
uint32 t = (uint32)UNIXTIME;
#ifdef USING_BIG_ENDIAN
swap32(&t);
#endif
OutPacket(SMSG_QUERY_TIME_RESPONSE, 4, &t);
}
开发者ID:Chero,项目名称:abcwow,代码行数:11,代码来源:QueryHandler.cpp
示例17: assert
// Output n'th path element via OutPacket
void ARec::OutPathElement(int n, PartialPath pp)
{
Word wrd = NULL;
char *w, *t;
float ac,lm,score; // various likelihoods
float confidence; // acoustic confidence
HTime tst,tet; // start and end times
PhraseType k;
NetNode *node;
Path *p = pp.path;
int i,frame;
float prevLike,lmScore;
// not very efficient but paths never very long
for (i=pp.n; i>n; i--) {assert(p); p = p->prev;}
assert(p);
PathMap::const_iterator it = opMap.find(p);
if (it != opMap.end()){
i = opMap[p]; opMap[p] += 1;
return;
}
node = p->owner->node; assert(node);
t = node->tag; w = NULL;
if (node->info.pron != NULL) wrd = node->info.pron->word;
if (wrd != NULL) {w = wrd->wordName->name; k = Word_PT;}
if (wrd == NULL || (wrd != NULL && strcmp(w,"!NULL")==0)){
k = Null_PT; w = NULL;
}
if (t!=NULL){
if (strstr(t,"!SUBLAT_(") != NULL){
k=OpenTag_PT; t = NULL;
}else if (strstr(t,"!)_SUBLAT-") != NULL){
k=CloseTag_PT; t += 10;
}
}
frame = (n==1)?pp.startFrame:p->prev->owner->frame;
tst = frame * sampPeriod;
tet = p->owner->frame *sampPeriod;
prevLike = (n==1)?pp.startLike:float(p->prev->like);
lmScore = p->lm; /* SJY 10/12/03 - lm used to be unscaled so this value was scaled
here, but now scaling done during recognition */
// pronScore = (k == Word_PT)?node->info.pron->prob*pp.pronScale:0.0;
wordPen = float((k==Word_PT)?pp.wordPen:0.0);
ac = float(p->like - prevLike - lmScore - wordPen);
lm = lmScore + wordPen;
score = float(p->like);
char *none="";
confidence = GetConfidence(pri,frame+1,p->owner->frame,ac,(w!=NULL)?w:none);
// printf("CONFB %d. ac=%.1f, prevLike=%.1f, lmScore=%.1f, wordPen=%.1f, lm=%.1f, score=%.1f conf=%.1f\n",
// p->owner->frame, ac,prevLike,lmScore,wordPen,lm,score,confidence);
OutPacket(k, string((w!=NULL)?w:""), string((t!=NULL)?t:""),
outseqnum, 0, ac, lm, score, confidence, (float)tact/frameCount,
tst+stTime, tet+stTime);
opMap[p] = 1;
}
开发者ID:deardaniel,项目名称:PizzaTest,代码行数:59,代码来源:ARec.cpp
示例18: OutPacket
void WorldSession::HandleBeginTrade(WorldPacket & recv_data)
{
if(!_player->IsInWorld()) return;
uint32 TradeStatus = TRADE_STATUS_INITIATED;
Player * plr = _player->GetTradeTarget();
if(_player->mTradeTarget == 0 || plr == 0)
{
TradeStatus = TRADE_STATUS_PLAYER_NOT_FOUND;
OutPacket(TRADE_STATUS_PLAYER_NOT_FOUND, 4, &TradeStatus);
return;
}
OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->m_session->OutPacket(SMSG_TRADE_STATUS, 4, &TradeStatus);
plr->mTradeStatus = TradeStatus;
_player->mTradeStatus = TradeStatus;
}
开发者ID:Sylica2013,项目名称:Antrix,代码行数:19,代码来源:TradeHandler.cpp
示例19: GetPlayer
void WorldSession::SendTaxiList(Creature* pCreature)
{
uint32 curloc;
uint8 field;
uint32 TaxiMask[NUM_TAXI_NODES];
uint32 submask;
uint64 guid = pCreature->GetGUID();
curloc = pCreature->m_TaxiNode;
if (!curloc)
return;
field = (uint8)((curloc - 1) / 32);
submask = 1<<((curloc-1)%32);
// Check for known nodes
if (!(GetPlayer( )->GetTaximask(field) & submask))
{
GetPlayer()->SetTaximask(field, (submask | GetPlayer( )->GetTaximask(field)) );
OutPacket(SMSG_NEW_TAXI_PATH);
//Send packet
WorldPacket update(SMSG_TAXINODE_STATUS, 9);
update << guid << uint8( 1 );
SendPacket( &update );
}
//Set Mask
for(uint8 i = 0; i < NUM_TAXI_NODES; i++)
{
TaxiMask[i] = 0;
}
sTaxiMgr.GetGlobalTaxiNodeMask(curloc, TaxiMask);
TaxiMask[field] |= 1 << ((curloc-1)%32);
//Remove nodes unknown to player
for(uint8 i = 0; i < NUM_TAXI_NODES; i++)
{
TaxiMask[i] &= GetPlayer( )->GetTaximask(i);
}
WorldPacket data(48);
data.Initialize( SMSG_SHOWTAXINODES );
data << uint32( 1 ) << guid;
data << uint32( curloc );
for(int i = 0; i < NUM_TAXI_NODES; i++)
{
data << TaxiMask[i];
}
SendPacket( &data );
DEBUG_LOG( "WORLD: Sent SMSG_SHOWTAXINODES" );
}
开发者ID:Ballwinkle,项目名称:Ascent_NG,代码行数:54,代码来源:TaxiHandler.cpp
示例20: Disconnect
void WorldSocket::_HandlePing(WorldPacket* recvPacket)
{
uint32 ping;
if(recvPacket->size() < 4)
{
sLog.outString("Socket closed due to incomplete ping packet.");
Disconnect();
return;
}
*recvPacket >> ping;
*recvPacket >> _latency;
if(mSession)
{
mSession->_latency = _latency;
mSession->m_lastPing = (uint32)UNIXTIME;
// reset the move time diff calculator, don't worry it will be re-calculated next movement packet.
mSession->m_clientTimeDelay = 0;
}
#ifdef USING_BIG_ENDIAN
swap32(&ping);
#endif
OutPacket(SMSG_PONG, 4, &ping);
#ifdef WIN32
// Dynamically change nagle buffering status based on latency.
//if(_latency >= 250)
// I think 350 is better, in a MMO 350 latency isn't that big that we need to worry about reducing the number of packets being sent.
if(_latency >= 350)
{
if(!m_nagleEanbled)
{
u_long arg = 0;
setsockopt(GetFd(), 0x6, 0x1, (const char*)&arg, sizeof(arg));
m_nagleEanbled = true;
}
}
else
{
if(m_nagleEanbled)
{
u_long arg = 1;
setsockopt(GetFd(), 0x6, 0x1, (const char*)&arg, sizeof(arg));
m_nagleEanbled = false;
}
}
#endif
}
开发者ID:Zelgadisx5,项目名称:Arcemu-2.4.3,代码行数:52,代码来源:WorldSocket.cpp
注:本文中的OutPacket函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论