increased chunk size
Fork of MTS-Socket by
TCPSocketConnection.cpp
- Committer:
- Mike Fiore
- Date:
- 2014-05-19
- Revision:
- 1:096f484f3ae6
- Child:
- 2:ebc6129de4e8
File content as of revision 1:096f484f3ae6:
#include "TCPSocketConnection.h" #include <algorithm> TCPSocketConnection::TCPSocketConnection() { } int TCPSocketConnection::connect(const char* host, const int port) { if (!ip->open(host, port, IPStack::TCP)) { return -1; } return 0; } bool TCPSocketConnection::is_connected(void) { return ip->isOpen(); } int TCPSocketConnection::send(char* data, int length) { Timer tmr; if (!_blocking) { tmr.start(); while (tmr.read_ms() < _timeout) { if (ip->writeable()) break; } if (tmr.read_ms() >= _timeout) { return -1; } } return ip->write(data, length, 0); } // -1 if unsuccessful, else number of bytes written int TCPSocketConnection::send_all(char* data, int length) { if (_blocking) { return ip->write(data, length, -1); } else { return ip->write(data, length, _timeout); } } // -1 if unsuccessful, else number of bytes received int TCPSocketConnection::receive(char* data, int length) { Timer tmr; int time = -1; if (!_blocking) { tmr.start(); while (time < _timeout + 20) { if (ip->readable()) { break; } time = tmr.read_ms(); } if (time >= _timeout + 20) { return -1; } } else { while(!ip->readable()); } return ip->read(data, length, 0); } // -1 if unsuccessful, else number of bytes received int TCPSocketConnection::receive_all(char* data, int length) { if (_blocking) { return ip->read(data, length, -1); } else { return ip->read(data, length, _timeout); } }