![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/local/lib/node_modules/mediasoup/worker/src/RTC/ |
Upload File : |
#define MS_CLASS "RTC::TcpServer" // #define MS_LOG_DEV_LEVEL 3 #include "RTC/TcpServer.hpp" #include "Logger.hpp" #include "RTC/PortManager.hpp" #include <string> namespace RTC { /* Static. */ static constexpr size_t MaxTcpConnectionsPerServer{ 10 }; /* Instance methods. */ TcpServer::TcpServer(Listener* listener, RTC::TcpConnection::Listener* connListener, std::string& ip) : // This may throw. ::TcpServer::TcpServer(RTC::PortManager::BindTcp(ip), 256), listener(listener), connListener(connListener) { MS_TRACE(); } TcpServer::~TcpServer() { MS_TRACE(); RTC::PortManager::UnbindTcp(this->localIp, this->localPort); } void TcpServer::UserOnTcpConnectionAlloc() { MS_TRACE(); // Allow just MaxTcpConnectionsPerServer. if (GetNumConnections() >= MaxTcpConnectionsPerServer) { MS_ERROR("cannot handle more than %zu connections", MaxTcpConnectionsPerServer); return; } // Allocate a new RTC::TcpConnection for the TcpServer to handle it. auto* connection = new RTC::TcpConnection(this->connListener, 65536); // Accept it. AcceptTcpConnection(connection); } void TcpServer::UserOnTcpConnectionClosed(::TcpConnection* connection) { MS_TRACE(); this->listener->OnRtcTcpConnectionClosed(this, static_cast<RTC::TcpConnection*>(connection)); } } // namespace RTC