同步操作将从 libhv/libhv 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/** TcpClient_test.cpp** @build make evpp* @server bin/TcpServer_test 1234* @client bin/TcpClient_test 1234**/#include <iostream>#include "TcpClient.h"#include "htime.h"#define TEST_RECONNECT 1#define TEST_TLS 0using namespace hv;int main(int argc, char* argv[]) {if (argc < 2) {printf("Usage: %s remote_port [remote_host]\n", argv[0]);return -10;}int remote_port = atoi(argv[1]);const char* remote_host = "127.0.0.1";if (argc > 2) {remote_host = argv[2];}TcpClient cli;int connfd = cli.createsocket(remote_port, remote_host);if (connfd < 0) {return -20;}printf("client connect to port %d, connfd=%d ...\n", remote_port, connfd);cli.onConnection = [&cli](const SocketChannelPtr& channel) {std::string peeraddr = channel->peeraddr();if (channel->isConnected()) {printf("connected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd());// send(time) every 3ssetInterval(3000, [channel](TimerID timerID){if (channel->isConnected()) {if (channel->isWriteComplete()) {char str[DATETIME_FMT_BUFLEN] = {0};datetime_t dt = datetime_now();datetime_fmt(&dt, str);channel->write(str);}} else {killTimer(timerID);}});} else {printf("disconnected to %s! connfd=%d\n", peeraddr.c_str(), channel->fd());}if (cli.isReconnect()) {printf("reconnect cnt=%d, delay=%d\n", cli.reconn_setting->cur_retry_cnt, cli.reconn_setting->cur_delay);}};cli.onMessage = [](const SocketChannelPtr& channel, Buffer* buf) {printf("< %.*s\n", (int)buf->size(), (char*)buf->data());};#if TEST_RECONNECT// reconnect: 1,2,4,8,10,10,10...reconn_setting_t reconn;reconn_setting_init(&reconn);reconn.min_delay = 1000;reconn.max_delay = 10000;reconn.delay_policy = 2;cli.setReconnect(&reconn);#endif#if TEST_TLScli.withTLS();#endifcli.start();std::string str;while (std::getline(std::cin, str)) {if (str == "close") {cli.closesocket();} else if (str == "start") {cli.start();} else if (str == "stop") {cli.stop();break;} else {if (!cli.isConnected()) break;cli.send(str);}}return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。