Fixed a bug in deserializePacket()
This commit is contained in:
@@ -95,7 +95,7 @@ void deserializePacket(void* buffer, SerialPacketBase* packet) {
|
|||||||
SerialPacketType type;
|
SerialPacketType type;
|
||||||
memcpy(&type, buffer, sizeof(SerialPacketType));
|
memcpy(&type, buffer, sizeof(SerialPacketType));
|
||||||
|
|
||||||
switch(packet->type) {
|
switch(type) {
|
||||||
case SerialPacketType::PING:
|
case SerialPacketType::PING:
|
||||||
case SerialPacketType::PONG:
|
case SerialPacketType::PONG:
|
||||||
case SerialPacketType::BROADCAST_REQUEST:
|
case SerialPacketType::BROADCAST_REQUEST:
|
||||||
|
|||||||
@@ -163,10 +163,18 @@ void ServerApplication::Init(int argc, char* argv[]) {
|
|||||||
|
|
||||||
void ServerApplication::Proc() {
|
void ServerApplication::Proc() {
|
||||||
SerialPacket* packetBuffer = reinterpret_cast<SerialPacket*>(new char[MAX_PACKET_SIZE]);
|
SerialPacket* packetBuffer = reinterpret_cast<SerialPacket*>(new char[MAX_PACKET_SIZE]);
|
||||||
|
memset(packetBuffer, 0, MAX_PACKET_SIZE); //zero the buffer
|
||||||
|
|
||||||
while(running) {
|
while(running) {
|
||||||
//suck in the waiting packets & process them
|
//suck in the waiting packets & process them
|
||||||
while(UDPNetworkUtility::GetSingleton().Receive(packetBuffer)) {
|
while(UDPNetworkUtility::GetSingleton().Receive(packetBuffer)) {
|
||||||
HandlePacket(packetBuffer);
|
try {
|
||||||
|
HandlePacket(packetBuffer);
|
||||||
|
}
|
||||||
|
catch(std::exception& e) {
|
||||||
|
std::cerr << "HandlePacket Error: " << e.what() << std::endl;
|
||||||
|
}
|
||||||
|
memset(packetBuffer, 0, MAX_PACKET_SIZE); //reset the buffer
|
||||||
}
|
}
|
||||||
//update the internals
|
//update the internals
|
||||||
//...
|
//...
|
||||||
|
|||||||
Reference in New Issue
Block a user