[DEV] try to have fast tcp socket
This commit is contained in:
parent
d16c4b130d
commit
905721d2b9
12
enet/Tcp.cpp
12
enet/Tcp.cpp
@ -14,6 +14,18 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <etk/stdTools.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
bool enet::Tcp::setTCPNoDelay(bool _enabled) {
|
||||
if (m_socketId >= 0) {
|
||||
int flag = _enabled==true?1:0;
|
||||
if(setsockopt(m_socketId, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(flag)) == -1) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
enet::Tcp::Tcp() :
|
||||
|
@ -107,6 +107,8 @@ namespace enet {
|
||||
}
|
||||
return ret/sizeof(T);
|
||||
}
|
||||
|
||||
bool setTCPNoDelay(bool _enabled);
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <etk/stdTools.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
enet::Tcp enet::connectTcpClient(uint8_t _ip1, uint8_t _ip2, uint8_t _ip3, uint8_t _ip4, uint16_t _port, uint32_t _numberRetry) {
|
||||
std::string tmpname;
|
||||
|
@ -37,6 +37,7 @@ enet::WebSocket::WebSocket(enet::Tcp _connection, bool _isServer) :
|
||||
m_interface(),
|
||||
m_observer(nullptr),
|
||||
m_observerUriCheck(nullptr) {
|
||||
_connection.setTCPNoDelay(true);
|
||||
if (_isServer == true) {
|
||||
ememory::SharedPtr<enet::HttpServer> interface = std::make_shared<enet::HttpServer>(std::move(_connection));
|
||||
interface->connectHeader(this, &enet::WebSocket::onReceiveRequest);
|
||||
@ -50,6 +51,7 @@ enet::WebSocket::WebSocket(enet::Tcp _connection, bool _isServer) :
|
||||
}
|
||||
|
||||
void enet::WebSocket::setInterface(enet::Tcp _connection, bool _isServer) {
|
||||
_connection.setTCPNoDelay(true);
|
||||
if (_isServer == true) {
|
||||
ememory::SharedPtr<enet::HttpServer> interface = std::make_shared<enet::HttpServer>(std::move(_connection));
|
||||
interface->connectHeader(this, &enet::WebSocket::onReceiveRequest);
|
||||
|
Loading…
x
Reference in New Issue
Block a user