From b5dbb7010496f14de8bc16998a7a9932a81e3249 Mon Sep 17 00:00:00 2001 From: Anonymous275 Date: Thu, 16 Apr 2020 22:55:22 +0300 Subject: [PATCH] high accuracy ping + cleanup --- src/Network/ClientHandler.cpp | 21 ++++++++++++++++----- src/Network/DataParser.cpp | 22 +++++----------------- src/Network/functions.cpp | 12 +----------- 3 files changed, 22 insertions(+), 33 deletions(-) diff --git a/src/Network/ClientHandler.cpp b/src/Network/ClientHandler.cpp index fe223e4..f237f2b 100644 --- a/src/Network/ClientHandler.cpp +++ b/src/Network/ClientHandler.cpp @@ -1,24 +1,28 @@ -// -// Created by Anonymous275 on 2/4/2020. -// +/// +/// Created by Anonymous275 on 2/4/2020. +/// + #include "enet.h" #include #include +#include -using namespace std; void NameRequest(ENetPeer*peer){ ENetPacket* packet = enet_packet_create ("NameRequest", //Send A Name Request to the Client strlen ("NameRequest") + 1, ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data enet_peer_send(peer, 0, packet); } +void Respond(const std::string& MSG, ENetPeer*peer){ + enet_peer_send(peer, 0, enet_packet_create(MSG.c_str(), MSG.length() + 1, ENET_PACKET_FLAG_RELIABLE)); +} void SendToAll(ENetHost *server,ENetEvent event){ ENetPacket* packet; for (int i = 0; i < server->connectedPeers; i++) { //if (&server->peers[i] != event.peer) { if you don't want to send it to the person ho just connected char Data[500]; - sprintf(Data,"There is %d Players Connected!",server->connectedPeers); + sprintf(Data,"There is %zu Players Connected!",server->connectedPeers); printf("test %d\n",server->peers[i].serverVehicleID); packet = enet_packet_create(Data, strlen(Data)+1, 0); @@ -29,3 +33,10 @@ void SendToAll(ENetHost *server,ENetEvent event){ } } +void OnConnect(ENetPeer*peer){ + ENetPacket* packet = enet_packet_create ("NameRequest", //Send A Name Request to the Client + strlen ("NameRequest") + 1, + ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data + enet_peer_send(peer, 0, packet); + std::cout << "ID : " << peer->serverVehicleID << std::endl; +} diff --git a/src/Network/DataParser.cpp b/src/Network/DataParser.cpp index 4a68ef1..12bee7e 100644 --- a/src/Network/DataParser.cpp +++ b/src/Network/DataParser.cpp @@ -8,21 +8,9 @@ #include #include "../logger.h" -std::vector Split(const std::string& String,const std::string& delimiter); - -void ParseData(ENetPacket*packet,ENetPeer*peer){ //here we will parse the data +void Respond(const std::string& MSG, ENetPeer*peer); +void ParseData(ENetPacket*packet, ENetPeer*peer){ std::string Packet = (char*)packet->data; - int off = stoi(Packet.substr(0, 2)); - std::string header = Packet.substr(2, off - 2), data = Packet.substr(off); - std::vector split; - - if(!header.empty()) { - std::cout << header << " header size : " << header.size() << std::endl; - split = Split(header, ":"); //1st is reliable - 2nd is Code - 3rd is VehID - } - if(!data.empty()){ - std::cout << data << std::endl; - std::cout << "Ping : " << peer->ping << std::endl; - } - -} \ No newline at end of file + if(Packet == "p"){Respond("p",peer);return;} + std::cout << "Data : " << Packet << std::endl; +} diff --git a/src/Network/functions.cpp b/src/Network/functions.cpp index 541f2b3..644c456 100644 --- a/src/Network/functions.cpp +++ b/src/Network/functions.cpp @@ -1,10 +1,8 @@ /// /// Created by Anonymous275 on 4/1/2020 /// -#include "enet.h" -#include -#include "../logger.h" +#include std::vector Split(const std::string& String,const std::string& delimiter){ std::vector Val; size_t pos = 0; @@ -17,11 +15,3 @@ std::vector Split(const std::string& String,const std::string& deli Val.push_back(s); return Val; } - -void OnConnect(ENetPeer*peer){ - ENetPacket* packet = enet_packet_create ("NameRequest", //Send A Name Request to the Client - strlen ("NameRequest") + 1, - ENET_PACKET_FLAG_RELIABLE); //Create A reliable packet using the data - enet_peer_send(peer, 0, packet); - std::cout << "ID : " << peer->serverVehicleID << std::endl; -}