代码拉取完成,页面将自动刷新
同步操作将从 cxxjava/CxxConet 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "es_main.h"
#include "ENaf.hh"
#define LOG(fmt,...) //ESystem::out->println(fmt, ##__VA_ARGS__)
static void onConnection(sp<ESocketSession>& session, ESocketAcceptor::Service* service) {
LOG("onConnection: service=%s", service->toString().c_str());
sp<EIoBuffer> request;
try {
request = dynamic_pointer_cast<EIoBuffer>(session->read());
} catch (ESocketTimeoutException& e) {
LOG("session read timeout.");
return;
} catch (EIOException& e) {
LOG("session read error.");
return;
}
if (request == null) {
LOG("session client closed.");
return;
}
// echo.
#define TEST_HTTP_DATA "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nOK!"
int len = strlen(TEST_HTTP_DATA);
sp<EIoBuffer> respone = EIoBuffer::allocate(len);
respone->put(TEST_HTTP_DATA, len);
respone->flip();
session->write(respone);
LOG("Out of Connection.");
}
static void test_echo_performance() {
ESocketAcceptor sa;
sa.setConnectionHandler(onConnection);
sa.setSoTimeout(3000);
sa.setSessionIdleTime(EIdleStatus::WRITER_IDLE, 30);
sa.bind("0.0.0.0", 8888);
sa.listen();
}
MAIN_IMPL(testnaf_benchmark) {
printf("main()\n");
ESystem::init(argc, argv);
ELoggerManager::init("log4e.conf");
printf("inited.\n");
int i = 0;
try {
boolean loop = EBoolean::parseBoolean(ESystem::getProgramArgument("loop"));
do {
test_echo_performance();
} while (1);
}
catch (EException& e) {
e.printStackTrace();
}
catch (...) {
printf("catch all...\n");
}
printf("exit...\n");
ESystem::exit(0);
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。