From a77442327f4086f93f2c044ad6763b9ee13d1cbd Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sat, 3 Sep 2011 20:34:30 -0700 Subject: [PATCH] fixing net buffer bug --- main.cpp | 87 ++++++++++++--------------------------------------- mc_stream.cpp | 11 ++++--- mc_stream.hpp | 1 - 3 files changed, 26 insertions(+), 73 deletions(-) diff --git a/main.cpp b/main.cpp index 2c5e780..3f391ba 100644 --- a/main.cpp +++ b/main.cpp @@ -37,63 +37,12 @@ static const int SERVER_PORT = 1338; static const int SERVER_MAX_CLIENTS = 1; -// -// Local variables -// - -static bool executeServer = true; - - -// -// Local functions (bound) -// - -static void serverStop() { - printf("[S] Server stop request received\n"); - executeServer = false; -} - - // // Local functions // -static void server() { - Server server; - - printf("[S] Starting server on port %d\n", SERVER_PORT); - if (!server.start(SERVER_PORT, SERVER_MAX_CLIENTS)) { - perror("[S] Unable to start server"); - return; - } - - printf("[S] Binding server functions\n"); - server.binding()->bind("serverStop", serverStop); - - printf("[S] Beginning client updates\n"); - while (executeServer) { - server.advance(); - } - - printf("[S] Server shutting down"); - server.stop(); -} - -static void client() { - Client client; - - printf("[C] Connecting to server on port %d...\n", SERVER_PORT); - if (!client.connect("localhost", SERVER_PORT)) { - perror("[C] Unable to connect to server\n"); - return; - } - - printf("[C] Sending server shutdown request\n"); - client.protocol()->invoke("serverStop"); - - while (client.connected()) { - client.advance(); - } +static void serverTest() { + printf("Server test!\n"); } @@ -102,23 +51,27 @@ static void client() { // int main(int argc, char **argv) { - printf("[S] Starting server on port %d\n", SERVER_PORT); - Server server; - if (!server.start(SERVER_PORT, 1)) { - printf("[S] Unable to start server\n"); - return 1; - } - - - printf("[S] Connecting to server on port %d\n", SERVER_PORT); - Client client; - if (!client.connect("localhost", SERVER_PORT)) { - printf("[C] Unable to connect to server\n"); - return 1; - } + Server server; + printf("[S] Starting server on port %d\n", SERVER_PORT); + if (!server.start(SERVER_PORT, SERVER_MAX_CLIENTS)) { + printf("[S] Unable to start server\n"); + return 1; + } + server.binding()->bind("serverTest", serverTest); + Client client; + printf("[S] Connecting to server on port %d\n", SERVER_PORT); + if (!client.connect("localhost", SERVER_PORT)) { + printf("[C] Unable to connect to server\n"); + return 1; + } + while (true) { + server.advance(); + client.protocol()->invoke("serverTest"); + client.advance(); + } return 0; } diff --git a/mc_stream.cpp b/mc_stream.cpp index 3230660..2f712dd 100644 --- a/mc_stream.cpp +++ b/mc_stream.cpp @@ -57,16 +57,17 @@ Stream::State Stream::advance() { } if (socket_->wait(Socket::MASK_READ, 0)) { - const int bytesReceived = socket_->receive( - buffNet_.data(), - buffNet_.bytes() + byte buffRecv[1024]; + const int bytesRecv = socket_->receive( + buffRecv, + sizeof(buffRecv) ); - if (bytesReceived <= 0) { + if (bytesRecv <= 0) { return STATE_ERROR_CONNECTION; } - buffRecv_.addToBack(buffNet_.data(), bytesReceived); + buffRecv_.addToBack(buffRecv, bytesRecv); } return STATE_READY; diff --git a/mc_stream.hpp b/mc_stream.hpp index deff8ba..30afb75 100644 --- a/mc_stream.hpp +++ b/mc_stream.hpp @@ -60,7 +60,6 @@ class Stream { Socket* socket_; Buffer buffRecv_; Buffer buffSend_; - Buffer buffNet_; };