Fixed two little bugs regarding server connecting client.

This commit is contained in:
Charles Lohr
2004-07-04 06:30:16 +00:00
parent ab7f6de1e3
commit f12a8ea8e6
2 changed files with 23 additions and 8 deletions
+12 -1
View File
@@ -14,6 +14,16 @@ void NetworkSyncManager::ReportSongOver() { }
void NetworkSyncManager::StartRequest() { }
void NetworkSyncManager::DisplayStartupStatus() { }
void NetworkSyncManager::Update( float fDeltaTime ) { }
void NetworkSyncManager::WriteNT() { }
void NetworkSyncManager::Write1() { }
void NetworkSyncManager::Write2() { }
void NetworkSyncManager::Write4() { }
void NetworkSyncManager::ProcessInput() { }
void NetworkSyncManager::Read1() { }
void NetworkSyncManager::Read2() { }
void NetworkSyncManager::Read4() { }
void NetworkSyncManager::ReadNT() { }
#else
#include "ezsockets.h"
@@ -294,7 +304,8 @@ void NetworkSyncManager::Update(float fDeltaTime)
void NetworkSyncManager::ProcessInput()
{
//If we're disconnected, just exit
if (NetPlayerClient->state!=NetPlayerClient->skCONNECTED)
if ((NetPlayerClient->state!=NetPlayerClient->skCONNECTED) ||
NetPlayerClient->IsError())
return;
//load new data into buffer
+11 -7
View File
@@ -214,7 +214,8 @@ void EzSockets::update()
//Check for reading
while (CanRead() && !IsError())
pUpdateRead();
if (pUpdateRead()<1)
break;
if (CanWrite() && (outBuffer.length()>0))
pUpdateWrite();
@@ -259,16 +260,15 @@ int EzSockets::PeekData(char *data, unsigned int bytes)
while ((inBuffer.length()<bytes) && !IsError())
pUpdateRead();
else
{
while (CanRead()&&!IsError())
pUpdateRead();
}
if (pUpdateRead()<1)
break;
int bytesRead = bytes;
if (inBuffer.length()<bytes)
bytesRead = inBuffer.length();
memcpy(data,(inBuffer.substr(0,bytesRead)).c_str(),bytesRead);
memcpy(data,inBuffer.c_str(),bytesRead);
return bytesRead;
}
@@ -301,10 +301,14 @@ int EzSockets::PeekPack(char * data, unsigned int max)
pUpdateRead();
}
if (IsError())
return (-1);
// LOG->Info("TTY:%d",inBuffer.length()
unsigned int size=0;
PeekData((char*)&size,4);
size = ntohl(size);
// LOG->Info("TXA:%d",size);
while ((inBuffer.length()<(size+4)) && !IsError())
{
pUpdateRead();
@@ -325,7 +329,7 @@ int EzSockets::PeekPack(char * data, unsigned int max)
unsigned int size=0;
PeekData((char*)&size,4);
size = ntohl(size);
if (inBuffer.length()<(size+4))
if ((inBuffer.length()<(size+4)) || (inBuffer.length()<=4))
return (-1);
string tBuff(inBuffer.substr(4,size));