本文整理汇总了C++中RAKNET_DEBUG_PRINTF函数的典型用法代码示例。如果您正苦于以下问题:C++ RAKNET_DEBUG_PRINTF函数的具体用法?C++ RAKNET_DEBUG_PRINTF怎么用?C++ RAKNET_DEBUG_PRINTF使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了RAKNET_DEBUG_PRINTF函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: inBitstream
void ConnectionGraph::OnConnectionGraphRequest(Packet *packet)
{
char password[256];
RakNet::BitStream inBitstream(packet->data, packet->length, false);
inBitstream.IgnoreBits(8);
stringCompressor->DecodeString(password,256,&inBitstream);
if (pw && pw[0] && strcmp(pw, password)!=0)
return;
#ifdef _CONNECTION_GRAPH_DEBUG_PRINT
RAKNET_DEBUG_PRINTF("ID_CONNECTION_GRAPH_REPLY ");
#endif
RakNet::BitStream outBitstream;
outBitstream.Write((MessageID)ID_CONNECTION_GRAPH_REPLY);
stringCompressor->EncodeString(pw,256,&outBitstream);
SerializeWeightedGraph(&outBitstream, graph);
SendUnified(&outBitstream, LOW_PRIORITY, RELIABLE_ORDERED, connectionGraphChannel, packet->systemAddress, false);
#ifdef _CONNECTION_GRAPH_DEBUG_PRINT
RAKNET_DEBUG_PRINTF("from %i to %i\n", peer->GetInternalID().port, packet->systemAddress.port);
#endif
// Add packet->systemAddress to the participant list if it is not already there
AddParticipant(packet->systemAddress);
}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:26,代码来源:ConnectionGraph.cpp
示例2: RAKNET_DEBUG_PRINTF
bool TelnetTransport::ReassembleLine(TelnetTransport::TelnetClient* remoteClient, unsigned char c)
{
if (c=='\n')
{
remoteClient->textInput[remoteClient->cursorPosition]=0;
remoteClient->cursorPosition=0;
#ifdef _PRINTF_DEBUG
RAKNET_DEBUG_PRINTF("[Done] %s\n", remoteClient->textInput);
#endif
return true;
}
else if (c==8) // backspace
{
if (remoteClient->cursorPosition>0)
{
remoteClient->textInput[--remoteClient->cursorPosition]=0;
#ifdef _PRINTF_DEBUG
RAKNET_DEBUG_PRINTF("[Back] %s\n", remoteClient->textInput);
#endif
}
}
else if (c>=32 && c <127)
{
if (remoteClient->cursorPosition < REMOTE_MAX_TEXT_INPUT)
{
remoteClient->textInput[remoteClient->cursorPosition++]=c;
#ifdef _PRINTF_DEBUG
RAKNET_DEBUG_PRINTF("[Norm] %s\n", remoteClient->textInput);
#endif
}
}
return false;
}
开发者ID:BackupTheBerlios,项目名称:trinitas-svn,代码行数:33,代码来源:TelnetTransport.cpp
示例3: inet_addr
int SocketLayer::SendToTTL( SOCKET s, const char *data, int length, const char ip[ 16 ], unsigned short port, int ttl )
{
unsigned int binaryAddress;
binaryAddress = inet_addr( ip );
SystemAddress sa(binaryAddress,port);
if (slo)
return slo->RakNetSendTo(s,data,length,sa);
#if !defined(_XBOX) && !defined(X360)
int oldTTL;
socklen_t opLen=sizeof(oldTTL);
// Get the current TTL
if (getsockopt(s, IPPROTO_IP, IP_TTL, ( char * ) & oldTTL, &opLen ) == -1)
{
#if defined(_WIN32) && defined(_DEBUG)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "getsockopt(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
}
// Set to TTL
int newTTL=ttl;
if (setsockopt(s, IPPROTO_IP, IP_TTL, ( char * ) & newTTL, sizeof ( newTTL ) ) == -1)
{
#if defined(_WIN32) && defined(_DEBUG)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "setsockopt(IPPROTO_IP,IP_TTL) failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
}
// Send
int res = SendTo(s,data,length,ip,port,false);
// Restore the old TTL
setsockopt(s, IPPROTO_IP, IP_TTL, ( char * ) & oldTTL, opLen );
return res;
#else
return 0;
#endif
}
开发者ID:DreamNex,项目名称:MultiplayerA2,代码行数:57,代码来源:SocketLayer.cpp
示例4: GetMyIP_Win32
void GetMyIP_Win32( char ipList[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ][ 16 ], unsigned int binaryAddresses[MAXIMUM_NUMBER_OF_INTERNAL_IDS] )
{
char ac[ 80 ];
if ( gethostname( ac, sizeof( ac ) ) == -1 )
{
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "gethostname failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
return ;
}
struct hostent *phe = gethostbyname( ac );
if ( phe == 0 )
{
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "gethostbyname failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
return ;
}
struct in_addr addr[ MAXIMUM_NUMBER_OF_INTERNAL_IDS ];
int idx;
for ( idx = 0; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx )
{
if (phe->h_addr_list[ idx ] == 0)
break;
memcpy( &addr[idx], phe->h_addr_list[ idx ], sizeof( struct in_addr ) );
binaryAddresses[idx]=addr[idx].S_un.S_addr;
strcpy( ipList[ idx ], inet_ntoa( addr[idx] ) );
}
for ( ; idx < MAXIMUM_NUMBER_OF_INTERNAL_IDS; ++idx )
{
ipList[idx][0]=0;
}
}
开发者ID:Hamcha,项目名称:facilitator,代码行数:52,代码来源:SocketLayer.cpp
示例5: RAKNET_DEBUG_PRINTF
void ConnectionGraph::SerializeWeightedGraph(RakNet::BitStream *out, const DataStructures::WeightedGraph<ConnectionGraph::SystemAddressAndGroupId, unsigned short, false> &g) const
{
unsigned nodeIndex, connectionIndex;
BitSize_t countOffset, oldOffset;
unsigned short count;
SystemAddressAndGroupId node1, node2;
unsigned short weight;
out->WriteCompressed(g.GetNodeCount());
for (nodeIndex=0; nodeIndex < g.GetNodeCount(); nodeIndex++)
{
// Write the node
node1=g.GetNodeAtIndex(nodeIndex);
#ifdef _CONNECTION_GRAPH_DEBUG_PRINT
RAKNET_DEBUG_PRINTF("[%i] ", node1.systemAddress.port);
#endif
out->Write(node1.systemAddress);
out->Write(node1.groupId);
out->Write(node1.guid);
// Write the adjacency list count
count=(unsigned short)g.GetConnectionCount(nodeIndex);
out->AlignWriteToByteBoundary();
countOffset=out->GetWriteOffset();
out->Write(count);
count=0;
for (connectionIndex=0; connectionIndex < g.GetConnectionCount(nodeIndex); connectionIndex++)
{
g.GetConnectionAtIndex(nodeIndex, connectionIndex, node2, weight);
// For efficiencies' sake, only serialize the upper half of the connection pairs
if (node2 > node1)
{
count++;
out->Write(node2.systemAddress);
out->Write(node2.groupId);
out->Write(node2.guid);
out->Write(weight);
#ifdef _CONNECTION_GRAPH_DEBUG_PRINT
RAKNET_DEBUG_PRINTF("(%i) ", node2.systemAddress.port);
#endif
}
}
// Go back and change how many elements were written
oldOffset=out->GetWriteOffset();
out->SetWriteOffset(countOffset);
out->Write(count);
out->SetWriteOffset(oldOffset);
}
}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:50,代码来源:ConnectionGraph.cpp
示例6: RakAssert
SOCKET SocketLayer::Connect( SOCKET writeSocket, unsigned int binaryAddress, unsigned short port )
{
RakAssert( writeSocket != (SOCKET) -1 );
sockaddr_in connectSocketAddress;
connectSocketAddress.sin_family = AF_INET;
connectSocketAddress.sin_port = htons( port );
connectSocketAddress.sin_addr.s_addr = binaryAddress;
if ( connect( writeSocket, ( struct sockaddr * ) & connectSocketAddress, sizeof( struct sockaddr ) ) != 0 )
{
#if defined(_WIN32) && !defined(_XBOX) && defined(_DEBUG) && !defined(X360)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) &messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "WSAConnect failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
}
return writeSocket;
}
开发者ID:DreamNex,项目名称:MultiplayerA2,代码行数:26,代码来源:SocketLayer.cpp
示例7: defined
void WSAStartupSingleton::AddRef(void)
{
#if defined(_WIN32) && !defined(WINDOWS_STORE_RT)
refCount++;
if (refCount!=1)
return;
WSADATA winsockInfo;
if ( WSAStartup( MAKEWORD( 2, 2 ), &winsockInfo ) != 0 )
{
#if defined(_DEBUG) && !defined(WINDOWS_PHONE_8)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "WSAStartup failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
}
#endif
}
开发者ID:Abagail,项目名称:SA-MP-Plus,代码行数:31,代码来源:WSAStartupSingleton.cpp
示例8: RakAssert
void FileList::DeleteFiles(const char *applicationDirectory)
{
char fullPath[512];
unsigned i,j;
for (i=0; i < fileList.Size(); i++)
{
// The filename should not have .. in the path - if it does ignore it
for (j=1; j < fileList[i].filename.GetLength(); j++)
{
if (fileList[i].filename[j]=='.' && fileList[i].filename[j-1]=='.')
{
#ifdef _DEBUG
RakAssert(0);
#endif
// Just cancel the deletion entirely
return;
}
}
strcpy(fullPath, applicationDirectory);
FixEndingSlash(fullPath);
strcat(fullPath, fileList[i].filename.C_String());
#ifdef _MSC_VER
#pragma warning( disable : 4966 ) // unlink declared deprecated by Microsoft in order to make it harder to be cross platform. I don't agree it's deprecated.
#endif
int result = unlink(fullPath);
if (result!=0)
{
RAKNET_DEBUG_PRINTF("FileList::DeleteFiles: unlink (%s) failed.\n", fullPath);
}
}
}
开发者ID:JobsSteve,项目名称:rushgame,代码行数:34,代码来源:FileList.cpp
示例9: defined
void SocketLayer::SetDoNotFragment( SOCKET listenSocket, int opt )
{
#if defined(IP_DONTFRAGMENT )
#if defined(_WIN32) && !defined(_XBOX) && defined(_DEBUG) && !defined(X360)
// If this assert hit you improperly linked against WSock32.h
RakAssert(IP_DONTFRAGMENT==14);
#endif
if ( setsockopt( listenSocket, IPPROTO_IP, IP_DONTFRAGMENT, ( char * ) & opt, sizeof ( opt ) ) == -1 )
{
#if defined(_WIN32) && defined(_DEBUG)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
RAKNET_DEBUG_PRINTF( "setsockopt(IP_DONTFRAGMENT) failed:Error code - %d\n%s", dwIOError, messageBuffer );
LocalFree( messageBuffer );
#endif
}
#endif
}
开发者ID:DreamNex,项目名称:MultiplayerA2,代码行数:25,代码来源:SocketLayer.cpp
示例10: sizeof
SystemAddress SocketLayer::GetSystemAddress ( SOCKET s )
{
sockaddr_in sa;
socklen_t len = sizeof(sa);
if (getsockname(s, (sockaddr*)&sa, &len)!=0)
{
#if defined(_WIN32) && !defined(_XBOX) && !defined(X360) && defined(_DEBUG)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
return UNASSIGNED_SYSTEM_ADDRESS;
}
SystemAddress out;
out.port=ntohs(sa.sin_port);
out.binaryAddress=sa.sin_addr.s_addr;
return out;
}
开发者ID:DreamNex,项目名称:MultiplayerA2,代码行数:26,代码来源:SocketLayer.cpp
示例11: sizeof
void RNS2_Berkley::GetSystemAddressIPV4And6 ( RNS2Socket rns2Socket, SystemAddress *systemAddressOut )
{
#if RAKNET_SUPPORT_IPV6==1
socklen_t slen;
sockaddr_storage ss;
slen = sizeof(ss);
if ( getsockname__(rns2Socket, (struct sockaddr *)&ss, &slen)!=0)
{
#if defined(_WIN32) && defined(_DEBUG)
DWORD dwIOError = GetLastError();
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) & messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "getsockname failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
#endif
systemAddressOut->FromString(0);
return;
}
if (ss.ss_family==AF_INET)
{
memcpy(&systemAddressOut->address.addr4,(sockaddr_in *)&ss,sizeof(sockaddr_in));
systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr4.sin_port);
uint32_t zero = 0;
if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0)
systemAddressOut->SetToLoopback(4);
// systemAddressOut->address.addr4.sin_port=ntohs(systemAddressOut->address.addr4.sin_port);
}
else
{
memcpy(&systemAddressOut->address.addr6,(sockaddr_in6 *)&ss,sizeof(sockaddr_in6));
systemAddressOut->debugPort=ntohs(systemAddressOut->address.addr6.sin6_port);
char zero[16];
memset(zero,0,sizeof(zero));
if (memcmp(&systemAddressOut->address.addr4.sin_addr.s_addr, &zero, sizeof(zero))==0)
systemAddressOut->SetToLoopback(6);
// systemAddressOut->address.addr6.sin6_port=ntohs(systemAddressOut->address.addr6.sin6_port);
}
#else
(void) rns2Socket;
(void) systemAddressOut;
return;
#endif
}
开发者ID:AgresivD,项目名称:ivmultiplayer,代码行数:55,代码来源:RakNetSocket2_Berkley.cpp
示例12: BITS_TO_BYTES
void Router::SendTree(PacketPriority priority, PacketReliability reliability, char orderingChannel, DataStructures::Tree<ConnectionGraph::SystemAddressAndGroupId> *tree, const char *data, BitSize_t bitLength, RakNet::BitStream *out, SystemAddressList *recipients)
{
BitSize_t outputOffset;
// Write routing identifer
out->Write((MessageID)ID_ROUTE_AND_MULTICAST);
// Write the send parameters
out->WriteCompressed((unsigned char)priority);
out->WriteCompressed((unsigned char)reliability);
out->WriteCompressed((unsigned char)orderingChannel);
// Write the user payload length
out->Write((unsigned int)bitLength);
// out->PrintBits();
// payload->PrintBits();
out->AlignWriteToByteBoundary();
// payload->AlignReadToByteBoundary();
// out->Write(payload, payload->GetNumberOfUnreadBits());
// out->PrintBits();
if ((bitLength % 8)==0)
out->Write(data, BITS_TO_BYTES(bitLength));
else
out->WriteBits((const unsigned char*)data, bitLength, false);
// Save where to start writing per-system data
outputOffset=out->GetWriteOffset();
// Write every child of the root of the tree (SystemAddress, isRecipient, branch)
unsigned i;
for (i=0; i < tree->children.Size(); i++)
{
// Start writing at the per-system data byte
out->SetWriteOffset(outputOffset);
// Write our external IP to designate the sender
out->Write(rakPeerInterface->GetExternalID(tree->children[i]->data.systemAddress));
// Serialize the tree
SerializePreorder(tree->children[i], out, recipients);
// Send to the first hop
#ifdef _DO_PRINTF
RAKNET_DEBUG_PRINTF("%i sending to %i\n", rakPeerInterface->GetExternalID(tree->children[i]->data.systemAddress).port, tree->children[i]->data.systemAddress.port);
#endif
SendUnified(out, priority, reliability, orderingChannel, tree->children[i]->data.systemAddress, false);
}
}
开发者ID:DaanRuiter,项目名称:Networking,代码行数:49,代码来源:Router.cpp
示例13: setsockopt__
RNS2SendResult RNS2_Windows_Linux_360::Send_Windows_Linux_360NoVDP( RNS2Socket rns2Socket, RNS2_SendParameters *sendParameters, const char *file, unsigned int line ) {
int len=0;
do
{
(void) file;
(void) line;
int oldTTL=-1;
if (sendParameters->ttl>0)
{
socklen_t opLen=sizeof(oldTTL);
// Get the current TTL
if (getsockopt__(rns2Socket, sendParameters->systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, &opLen ) != -1)
{
int newTTL=sendParameters->ttl;
setsockopt__(rns2Socket, sendParameters->systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & newTTL, sizeof ( newTTL ) );
}
}
if (sendParameters->systemAddress.address.addr4.sin_family==AF_INET)
{
len = sendto__( rns2Socket, sendParameters->data, sendParameters->length, 0, ( const sockaddr* ) & sendParameters->systemAddress.address.addr4, sizeof( sockaddr_in ) );
}
else
{
#if RAKNET_SUPPORT_IPV6==1
len = sendto__( rns2Socket, sendParameters->data, sendParameters->length, 0, ( const sockaddr* ) & sendParameters->systemAddress.address.addr6, sizeof( sockaddr_in6 ) );
#endif
}
if (len<0)
{
RAKNET_DEBUG_PRINTF("sendto failed with code %i for char %i and length %i.\n", len, sendParameters->data[0], sendParameters->length);
}
if (oldTTL!=-1)
{
setsockopt__(rns2Socket, sendParameters->systemAddress.GetIPPROTO(), IP_TTL, ( char * ) & oldTTL, sizeof ( oldTTL ) );
}
}
while ( len == 0 );
return len;
}
开发者ID:andrefsantos,项目名称:IVMultiplayer-1,代码行数:48,代码来源:RakNetSocket2_Windows_Linux_360.cpp
示例14: RAKNET_DEBUG_PRINTF
void RNS2_NativeClient::onSendTo(void* pData, int32_t dataSize)
{
if(dataSize <= 0)
RAKNET_DEBUG_PRINTF("onSendTo: send failed with error %d\n", dataSize);
RNS2_SendParameters_NativeClient *sp = (RNS2_SendParameters_NativeClient*) pData;
// Caller will check sendInProgress to send again if needed
sp->socket2->sendInProgressMutex.Lock();
sp->socket2->sendInProgress=false;
sp->socket2->sendInProgressMutex.Unlock();
DeallocSP(sp);
// if(dataSize == PP_ERROR_ABORTED)
// return;
}
开发者ID:jmcmorris,项目名称:RakNet,代码行数:17,代码来源:RakNetSocket2.cpp
示例15: _findnext
int _findnext(long h, _finddata_t *f)
{
RakAssert(h >= 0 && h < (long)fileInfo.Size());
if (h < 0 || h >= (long)fileInfo.Size()) return -1;
_findinfo_t* fi = fileInfo[h];
while(true)
{
dirent* entry = readdir(fi->openedDir);
if(entry == 0) return -1;
// Only report stuff matching our filter
if (fnmatch(fi->filter, entry->d_name, FNM_PATHNAME) != 0) continue;
// To reliably determine the entry's type, we must do
// a stat... don't rely on entry->d_type, as this
// might be unavailable!
struct stat filestat;
RakNet::RakString fullPath = fi->dirName + entry->d_name;
if (stat(fullPath, &filestat) != 0)
{
RAKNET_DEBUG_PRINTF("Cannot stat %s\n", fullPath.C_String());
continue;
}
if (S_ISREG(filestat.st_mode))
{
f->attrib = _A_NORMAL;
} else if (S_ISDIR(filestat.st_mode))
{
f->attrib = _A_SUBDIR;
} else continue; // We are interested in files and
// directories only. Links currently
// are not supported.
f->size = filestat.st_size;
strncpy(f->name, entry->d_name, STRING_BUFFER_SIZE);
return 0;
}
return -1;
}
开发者ID:bazhenovc,项目名称:nebula3,代码行数:44,代码来源:_FindFirst.cpp
示例16: htons
int SocketLayer::SendTo_PC( SOCKET s, const char *data, int length, unsigned int binaryAddress, unsigned short port )
{
sockaddr_in sa;
sa.sin_port = htons( port ); // User port
sa.sin_addr.s_addr = binaryAddress;
sa.sin_family = AF_INET;
int len=0;
do
{
len = sendto( s, data, length, 0, ( const sockaddr* ) & sa, sizeof( sa ) );
if (len<0)
{
#if defined(_WIN32) && !defined(_XBOX) && defined(_DEBUG) && !defined(X360)
DWORD dwIOError = GetLastError();
if (dwIOError!= 10040 && dwIOError != WSAEADDRNOTAVAIL)
{
LPVOID messageBuffer;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwIOError, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ), // Default language
( LPTSTR ) &messageBuffer, 0, NULL );
// something has gone wrong here...
RAKNET_DEBUG_PRINTF( "SendTo_PC failed:Error code - %d\n%s", dwIOError, messageBuffer );
//Free the buffer.
LocalFree( messageBuffer );
}
else
{
// buffer size exceeded
return -10040;
}
#endif
printf("sendto failed with code %i for char %i and length %i.\n", len, data[0], length);
}
#if defined(_DEBUG)
printf("Sent %d bytes to port %d\n", len, port);
#endif
}
while ( len == 0 );
return len;
}
开发者ID:Hamcha,项目名称:facilitator,代码行数:42,代码来源:SocketLayer.cpp
示例17: memset
RNS2BindResult RNS2_Berkley::BindSharedIPV4( RNS2_BerkleyBindParameters *bindParameters, const char *file, unsigned int line ) {
(void) file;
(void) line;
int ret;
memset(&boundAddress.address.addr4,0,sizeof(sockaddr_in));
boundAddress.address.addr4.sin_port = htons( bindParameters->port );
rns2Socket = (int) socket__( bindParameters->addressFamily, bindParameters->type, bindParameters->protocol );
if (rns2Socket == -1)
return BR_FAILED_TO_BIND_SOCKET;
SetSocketOptions();
SetNonBlockingSocket(bindParameters->nonBlockingSocket);
SetBroadcastSocket(bindParameters->setBroadcast);
// Fill in the rest of the address structure
boundAddress.address.addr4.sin_family = AF_INET;
if (bindParameters->hostAddress && bindParameters->hostAddress[0])
{
boundAddress.address.addr4.sin_addr.s_addr = inet_addr__( bindParameters->hostAddress );
}
else
{
// RAKNET_DEBUG_PRINTF("Binding any on port %i\n", port);
boundAddress.address.addr4.sin_addr.s_addr = INADDR_ANY;
}
// bind our name to the socket
ret = bind__( rns2Socket, ( struct sockaddr * ) &boundAddress.address.addr4, sizeof( boundAddress.address.addr4 ) );
if ( ret <= -1 )
{
#if defined(_WIN32)
closesocket__(rns2Socket);
return BR_FAILED_TO_BIND_SOCKET;
#elif (defined(__GNUC__) || defined(__GCCXML__) ) && !defined(_WIN32)
closesocket__(rns2Socket);
switch (ret)
{
case EBADF:
RAKNET_DEBUG_PRINTF("bind__(): sockfd is not a valid descriptor.\n"); break;
case ENOTSOCK:
RAKNET_DEBUG_PRINTF("bind__(): Argument is a descriptor for a file, not a socket.\n"); break;
case EINVAL:
RAKNET_DEBUG_PRINTF("bind__(): The addrlen is wrong, or the socket was not in the AF_UNIX family.\n"); break;
case EROFS:
RAKNET_DEBUG_PRINTF("bind__(): The socket inode would reside on a read-only file system.\n"); break;
case EFAULT:
RAKNET_DEBUG_PRINTF("bind__(): my_addr points outside the user's accessible address space.\n"); break;
case ENAMETOOLONG:
RAKNET_DEBUG_PRINTF("bind__(): my_addr is too long.\n"); break;
case ENOENT:
RAKNET_DEBUG_PRINTF("bind__(): The file does not exist.\n"); break;
case ENOMEM:
RAKNET_DEBUG_PRINTF("bind__(): Insufficient kernel memory was available.\n"); break;
case ENOTDIR:
RAKNET_DEBUG_PRINTF("bind__(): A component of the path prefix is not a directory.\n"); break;
case EACCES:
RAKNET_DEBUG_PRINTF("bind__(): Search permission is denied on a component of the path prefix.\n"); break;
case ELOOP:
RAKNET_DEBUG_PRINTF("bind__(): Too many symbolic links were encountered in resolving my_addr.\n"); break;
default:
RAKNET_DEBUG_PRINTF("Unknown bind__() error %i.\n", ret); break;
}
#endif
return BR_FAILED_TO_BIND_SOCKET;
}
GetSystemAddressIPV4(rns2Socket, &boundAddress );
return BR_SUCCESS;
}
开发者ID:AgresivD,项目名称:ivmultiplayer,代码行数:95,代码来源:RakNetSocket2_Berkley.cpp
示例18: RAKNET_DEBUG_PRINTF
/// Called for each directory, when that directory begins processing
void FLP_Printf::OnDirectory(FileList *fileList, char *dir, unsigned int directoriesRemaining) {
(void) fileList;
RAKNET_DEBUG_PRINTF("Adding %s. %i remaining.\n", dir, directoriesRemaining);}
开发者ID:JobsSteve,项目名称:rushgame,代码行数:4,代码来源:FileList.cpp
示例19: OnSendAborted
virtual void OnSendAborted( RakNet::SystemAddress systemAddress )
{
char str[32];
systemAddress.ToString(true, (char*) str);
RAKNET_DEBUG_PRINTF("Send aborted to %s\n", str);
}
开发者ID:CaiZhongda,项目名称:ClashOfClans,代码行数:6,代码来源:main.cpp
示例20: RAKNET_DEBUG_PRINTF
PluginReceiveResult Router::OnReceive(Packet *packet)
{
if (packet->data[0]==ID_ROUTE_AND_MULTICAST ||
(packet->length>5 && packet->data[0]==ID_TIMESTAMP && packet->data[5]==ID_ROUTE_AND_MULTICAST))
{
#ifdef _DO_PRINTF
RAKNET_DEBUG_PRINTF("%i got routed message from %i\n", peer->GetExternalID(packet->systemAddress).port, packet->systemAddress.port);
#endif
RakNetTime timestamp;
PacketPriority priority;
PacketReliability reliability;
unsigned char orderingChannel;
SystemAddress originalSender;
RakNet::BitStream out;
BitSize_t outStartingOffset;
unsigned int payloadBitLength;
unsigned payloadWriteByteOffset;
RakNet::BitStream incomingBitstream(packet->data, packet->length, false);
incomingBitstream.IgnoreBits(8);
if (packet->data[0]==ID_TIMESTAMP)
{
incomingBitstream.Read(timestamp);
out.Write((MessageID)ID_TIMESTAMP);
out.Write(timestamp);
incomingBitstream.IgnoreBits(8);
}
// Read the send parameters
unsigned char c;
incomingBitstream.ReadCompressed(c);
priority=(PacketPriority)c;
incomingBitstream.ReadCompressed(c);
reliability=(PacketReliability)c;
incomingBitstream.ReadCompressed(orderingChannel);
incomingBitstream.Read(payloadBitLength);
out.Write((MessageID)ID_ROUTE_AND_MULTICAST);
out.WriteCompressed((unsigned char)priority);
out.WriteCompressed((unsigned char)reliability);
out.WriteCompressed((unsigned char)orderingChannel);
out.Write(payloadBitLength);
out.AlignWriteToByteBoundary();
incomingBitstream.AlignReadToByteBoundary();
payloadWriteByteOffset=(unsigned int) BITS_TO_BYTES(out.GetWriteOffset());
out.Write(&incomingBitstream, payloadBitLength); // This write also does a read on incomingBitStream
if (restrictByType)
{
RakNet::BitStream t(out.GetData()+payloadWriteByteOffset, sizeof(unsigned char), false);
MessageID messageID;
t.Read(messageID);
if (allowedTypes.HasData(messageID)==false)
return RR_STOP_PROCESSING_AND_DEALLOCATE; // Don't route restricted types
}
incomingBitstream.Read(originalSender);
out.Write(originalSender);
outStartingOffset=out.GetWriteOffset();
// Deserialize the root
bool hasData=false;
SystemAddress recipient;
unsigned short numberOfChildren;
incomingBitstream.Read(hasData);
incomingBitstream.Read(recipient); // This should be our own address
if (incomingBitstream.ReadCompressed(numberOfChildren)==false)
{
#ifdef _DEBUG
RakAssert(0);
#endif
return RR_STOP_PROCESSING_AND_DEALLOCATE;
}
unsigned childIndex;
bool childHasData=false;
SystemAddress childRecipient;
unsigned short childNumberOfChildren;
SystemAddress immediateRecipient;
immediateRecipient=UNASSIGNED_SYSTEM_ADDRESS;
int pendingNodeCount=0;
for (childIndex=0; childIndex < numberOfChildren; childIndex++)
{
while (pendingNodeCount!=-1)
{
// Copy out the serialized subtree for this child
incomingBitstream.Read(childHasData);
incomingBitstream.Read(childRecipient);
if (!incomingBitstream.ReadCompressed(childNumberOfChildren))
return RR_STOP_PROCESSING_AND_DEALLOCATE;
if (immediateRecipient==UNASSIGNED_SYSTEM_ADDRESS)
{
immediateRecipient=childRecipient;
}
pendingNodeCount+=childNumberOfChildren-1;
out.Write(childHasData);
out.Write(childRecipient);
//.........这里部分代码省略.........
开发者ID:DaanRuiter,项目名称:Networking,代码行数:101,代码来源:Router.cpp
注:本文中的RAKNET_DEBUG_PRINTF函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论