Mercurial > cabal
comparison sources/network.cpp @ 7:8d54d9fdeca3
fixed comments
removed daemonization verbose
strings' size() -> length()
| author | Vlad Glagolev <enqlave@gmail.com> |
|---|---|
| date | Sun, 03 Feb 2008 21:29:41 +0300 |
| parents | 9be05a31b7f9 |
| children |
comparison
equal
deleted
inserted
replaced
| 6:9be05a31b7f9 | 7:8d54d9fdeca3 |
|---|---|
| 1 /** | 1 /** network.cpp (2007-04-02) |
| 2 * network.cpp (2007-04-02) | |
| 3 * | 2 * |
| 4 * -- CABAL -- network essentials (sockets, etc.) | 3 * -- CABAL -- network essentials (sockets, etc.) |
| 5 * | 4 * |
| 6 * Copyright (c) 2007-2008 Vlad Glagolev <enqlave@gmail.com> | 5 * Copyright (c) 2007-2008 Vlad Glagolev <enqlave@gmail.com> |
| 7 * All rights reserved. | 6 * All rights reserved. |
| 21 | 20 |
| 22 #include "cabal.hpp" // required: network.hpp | 21 #include "cabal.hpp" // required: network.hpp |
| 23 | 22 |
| 24 Network::Network() | 23 Network::Network() |
| 25 { | 24 { |
| 26 cout << "NETWORK: going online...\n"; | 25 if (CABAL->debug) |
| 26 cout << "NETWORK: going on-line...\n"; | |
| 27 } | 27 } |
| 28 | 28 |
| 29 Network::~Network() | 29 Network::~Network() |
| 30 { | 30 { |
| 31 closeSocket(); | 31 closeSocket(); |
| 32 | 32 |
| 33 cout << "NETWORK: offline\n"; | 33 if (CABAL->debug) |
| 34 cout << "NETWORK: off-line\n"; | |
| 34 } | 35 } |
| 35 | 36 |
| 36 void Network::sendMsg(string m) | 37 void Network::sendMsg(string m) |
| 37 { | 38 { |
| 38 if (cs == -1) | 39 if (cs == -1) |
| 39 return; | 40 return; |
| 40 | 41 |
| 41 if (CABAL->debug) | 42 if (CABAL->debug) |
| 42 cout << "<- " << cs << " -- " << m << endl; | 43 cout << "<- " << cs << " -- " << m << endl; |
| 43 | 44 |
| 44 send(cs, (m + "\n").c_str(), (m + "\n").size(), 0); | 45 send(cs, (m + "\n").c_str(), (m + "\n").length(), 0); |
| 45 } | 46 } |
| 46 | 47 |
| 47 string Network::receiveMsg() | 48 string Network::receiveMsg() |
| 48 { | 49 { |
| 49 if (cs == -1) | 50 if (cs == -1) |
| 50 return 0; | 51 return 0; |
| 51 | 52 |
| 52 if (canRead(cs)) { | 53 if (canRead(cs)) { |
| 53 string sbuffer = ""; | 54 string sbuffer; |
| 54 char cbuffer; | 55 char cbuffer; |
| 55 | 56 |
| 56 int err = recv(cs, &cbuffer, 1, 0); | 57 int err = recv(cs, &cbuffer, 1, 0); |
| 57 | 58 |
| 58 if (err > 0) { | 59 if (err > 0) { |
| 59 sbuffer += cbuffer; | 60 sbuffer += cbuffer; |
| 60 | 61 |
| 61 while (1) { | 62 while (1) { |
| 62 if (sbuffer[sbuffer.size() - 1] == '\n') { | 63 if (sbuffer[sbuffer.size() - 1] == '\n') { |
| 63 sbuffer = (sbuffer.substr(0, 1) == ":") | 64 sbuffer = (sbuffer.substr(0, 1) == ":") |
| 64 ? sbuffer.substr(1, sbuffer.size() - 3) | 65 ? sbuffer.substr(1, sbuffer.length() - 3) |
| 65 : sbuffer.substr(0, sbuffer.size() - 2); | 66 : sbuffer.substr(0, sbuffer.length() - 2); |
| 66 | 67 |
| 67 if (CABAL->debug) | 68 if (CABAL->debug) |
| 68 cout << "-> " << cs << " -- " << sbuffer << endl; | 69 cout << "-> " << cs << " -- " << sbuffer << endl; |
| 69 | 70 |
| 70 return sbuffer; | 71 return sbuffer; |
| 205 setsockopt(cs, IPPROTO_TCP, TCP_NODELAY, (pchar)&parm, sizeof(parm)); | 206 setsockopt(cs, IPPROTO_TCP, TCP_NODELAY, (pchar)&parm, sizeof(parm)); |
| 206 | 207 |
| 207 connected = false; | 208 connected = false; |
| 208 connecting = true; | 209 connecting = true; |
| 209 | 210 |
| 210 cout << "NETWORK: socket opened..........: " << cs << endl; | 211 if (CABAL->debug) |
| 212 cout << "NETWORK: socket opened..........: " << cs << endl; | |
| 211 | 213 |
| 212 return 1; | 214 return 1; |
| 213 } | 215 } |
| 214 | 216 |
| 215 bool Network::openHost() | 217 bool Network::openHost() |
| 242 } | 244 } |
| 243 | 245 |
| 244 connected = true; | 246 connected = true; |
| 245 connecting = false; | 247 connecting = false; |
| 246 | 248 |
| 247 cout << "NETWORK: socket connected.......: " << cs << endl; | 249 if (CABAL->debug) |
| 250 cout << "NETWORK: socket connected.......: " << cs << endl; | |
| 248 | 251 |
| 249 return 1; | 252 return 1; |
| 250 } | 253 } |
| 251 | 254 |
| 252 bool Network::closeSocket() | 255 bool Network::closeSocket() |
