2016-05-02 22:14:07 +02:00
|
|
|
/** @file
|
|
|
|
* @author Edouard DUPIN
|
|
|
|
* @copyright 2014, Edouard DUPIN, all right reserved
|
2017-01-05 21:28:23 +01:00
|
|
|
* @license MPL v2.0 (see license file)
|
2016-05-02 22:14:07 +02:00
|
|
|
*/
|
|
|
|
|
2016-09-30 22:28:36 +02:00
|
|
|
#include <test-debug/debug.hpp>
|
2016-10-07 00:35:43 +02:00
|
|
|
#include <enet/enet.hpp>
|
2016-09-30 22:28:36 +02:00
|
|
|
#include <enet/Tcp.hpp>
|
|
|
|
#include <enet/TcpClient.hpp>
|
|
|
|
#include <enet/Http.hpp>
|
|
|
|
#include <etk/etk.hpp>
|
2016-10-07 00:35:43 +02:00
|
|
|
#include <iostream>
|
2016-09-30 22:28:36 +02:00
|
|
|
#include <etk/stdTools.hpp>
|
2016-05-02 22:14:07 +02:00
|
|
|
|
|
|
|
int main(int _argc, const char *_argv[]) {
|
|
|
|
etk::init(_argc, _argv);
|
2016-10-07 00:35:43 +02:00
|
|
|
enet::init(_argc, _argv);
|
2016-05-02 22:14:07 +02:00
|
|
|
for (int32_t iii=0; iii<_argc ; ++iii) {
|
|
|
|
std::string data = _argv[iii];
|
|
|
|
if ( data == "-h"
|
|
|
|
|| data == "--help") {
|
|
|
|
TEST_PRINT(etk::getApplicationName() << " - help : ");
|
|
|
|
TEST_PRINT(" " << _argv[0] << " [options]");
|
|
|
|
TEST_PRINT(" No options ...");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
TEST_INFO("==================================");
|
|
|
|
TEST_INFO("== Test TCP client ==");
|
|
|
|
TEST_INFO("==================================");
|
|
|
|
// client mode ...
|
2016-09-08 21:35:02 +02:00
|
|
|
// connect on TCP server:
|
|
|
|
enet::Tcp connection = std::move(enet::connectTcpClient("127.0.0.1", 12345));
|
2016-05-02 22:14:07 +02:00
|
|
|
TEST_INFO("CLIENT connect ...");
|
2016-09-08 21:35:02 +02:00
|
|
|
if (connection.getConnectionStatus() != enet::Tcp::status::link) {
|
2016-05-02 22:14:07 +02:00
|
|
|
TEST_ERROR("can not link to the socket...");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
int32_t iii = 0;
|
2016-10-07 00:35:43 +02:00
|
|
|
int32_t delay = 200;
|
2016-09-08 21:35:02 +02:00
|
|
|
while ( connection.getConnectionStatus() == enet::Tcp::status::link
|
2016-05-02 22:14:07 +02:00
|
|
|
&& iii<10000) {
|
|
|
|
char data[1024];
|
|
|
|
int32_t len = connection.read(data, 1024);
|
|
|
|
TEST_INFO("read len=" << len << " data='" << data << "'");
|
2016-05-12 21:01:11 +02:00
|
|
|
//if (data[len-1] == '2') {
|
2016-10-07 00:35:43 +02:00
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(delay));
|
|
|
|
delay--;
|
|
|
|
if (delay == 0) {
|
|
|
|
delay = 500;
|
|
|
|
}
|
2016-05-12 21:01:11 +02:00
|
|
|
int32_t lenWrite = connection.write("get pair value");
|
|
|
|
TEST_INFO("write len=" << lenWrite);
|
|
|
|
//}
|
2016-05-02 22:14:07 +02:00
|
|
|
iii++;
|
|
|
|
}
|
|
|
|
if (iii>=10000) {
|
|
|
|
TEST_INFO("auto disconnected");
|
2016-09-08 21:35:02 +02:00
|
|
|
} else if (connection.getConnectionStatus() != enet::Tcp::status::link) {
|
2016-05-02 22:14:07 +02:00
|
|
|
TEST_INFO("server disconnected");
|
|
|
|
} else {
|
|
|
|
TEST_INFO("ERROR disconnected");
|
|
|
|
}
|
|
|
|
if (connection.unlink() == false) {
|
|
|
|
TEST_ERROR("can not unlink to the socket...");
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|