From 15a5eb42fe38d5f75c1543d17a3bed3d416ec0d5 Mon Sep 17 00:00:00 2001 From: serverericoza Date: Sun, 6 Jun 2010 11:50:29 +0200 Subject: [PATCH] Tryout for committing --- Client/1 | 0 Client/2 | 0 Server/main.cpp | 34 +++++++++++++++++----------------- Server/sockets.zip | Bin 13832 -> 0 bytes 4 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 Client/1 delete mode 100644 Client/2 delete mode 100644 Server/sockets.zip diff --git a/Client/1 b/Client/1 deleted file mode 100644 index e69de29b..00000000 diff --git a/Client/2 b/Client/2 deleted file mode 100644 index e69de29b..00000000 diff --git a/Server/main.cpp b/Server/main.cpp index 540479fe..8cc22930 100644 --- a/Server/main.cpp +++ b/Server/main.cpp @@ -5,7 +5,7 @@ #include #include -#define BUFLEN 3000000 +#define BUFLEN 1000000 bool machineEndianness() { int i = 1; @@ -20,14 +20,16 @@ bool machineEndianness() { int main() { char buffer[BUFLEN]; char input[BUFLEN]; + char header[BUFLEN]; int inp_amount; + int cur_header_pos; int position_current = 0; int position_startframe = 0; int frame_bodylength = 0; SWUnixSocket listener; SWUnixSocket *mySocket; SWBaseSocket::SWBaseError BError; - char header[13] = {'F','L','V',0x01,0x05,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00}; + cur_header_pos = fread(&header,1,13,stdin); listener.bind("../socketfile"); listener.listen(); @@ -36,34 +38,32 @@ int main() { while(true) { inp_amount = fread(&input,1,11,stdin); if (input[0] == 9) { + std::cout << "9!!\n"; if (!mySocket) { mySocket = (SWUnixSocket *)listener.accept(&BError); - mySocket->send(&header[0],13); + if (mySocket) { + mySocket->send(&header[0],cur_header_pos); + } } } - std::cout << "Blaah\n"; position_current = 0; position_startframe = position_current; for(int i = 0; i < 11; i++) { buffer[position_current] = input[i]; position_current ++; } frame_bodylength = 0; - if (machineEndianness() ) { - frame_bodylength += input[1]; - frame_bodylength += (input[2] << 8); - frame_bodylength += (input[3] << 16); - } else { - frame_bodylength += input[3]; - frame_bodylength += (input[2] << 8); - frame_bodylength += (input[1] << 16); - } + frame_bodylength += input[3]; + frame_bodylength += (input[2] << 8); + frame_bodylength += (input[1] << 16); + std::cout << frame_bodylength << "\n"; for (int i = 0; i < frame_bodylength + 4; i++) { inp_amount = fread(&input,1,1,stdin); - buffer[position_current] = input[0]; position_current ++; - std::cout << " " << position_current << "\n"; + buffer[position_current] = input[0]; + position_current ++; } std::cout << "Total message read!\n"; - exit(0); - mySocket->send(&buffer[0], position_current-1, &BError); + if (mySocket) { + mySocket->send(&buffer[0], position_current, &BError); + } } // disconnect and clean up diff --git a/Server/sockets.zip b/Server/sockets.zip deleted file mode 100644 index 5c2dee19654211a39e9c380c095e4c08dffda003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13832 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μ&E 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 E2f0*~)Bpeg