6#include <QNetworkProxy>
53 void incomingConnection(qintptr socket)
override;
68 static void RefreshDefaultListen(
void);
69 static QList<QHostAddress> DefaultListen(
void);
70 static QList<QHostAddress> DefaultListenIPv4(
void);
71 static QList<QHostAddress> DefaultListenIPv6(
void);
72 static QList<QHostAddress> DefaultBroadcast(
void);
73 static QList<QHostAddress> DefaultBroadcastIPv4(
void);
74 static QList<QHostAddress> DefaultBroadcastIPv6(
void);
76 bool listen(QList<QHostAddress> addrs, quint16 port,
bool requireall=
true,
78 bool listen(QStringList addrs, quint16 port,
bool requireall=
true,
80 bool listen(quint16 port,
bool requireall=
true,
83 bool bind(QList<QHostAddress> addrs, quint16 port,
bool requireall=
true);
84 bool bind(QStringList addrs, quint16 port,
bool requireall=
true);
85 bool bind(quint16 port,
bool requireall=
true);
87 qint64 writeDatagram(
const char * data, qint64 size,
88 const QHostAddress &addr, quint16 port);
89 qint64 writeDatagram(
const QByteArray &datagram,
90 const QHostAddress &addr, quint16 port);
97 QNetworkProxy
proxy(
void) {
return m_proxy; }
98 void setProxy(
const QNetworkProxy &proxy) { m_proxy = proxy; }
102 int tryListeningPort(
int baseport,
int range = 1);
103 int tryBindingPort(
int baseport,
int range = 1);
105 static int tryListeningPort(QTcpServer *server,
int baseport,
106 int range = 1,
bool *isipv6 =
nullptr);
107 static int tryBindingPort(QUdpSocket *socket,
int baseport,
108 int range = 1,
bool *isipv6 =
nullptr);
115 virtual void newUdpDatagram(
void);
116 virtual void newTcpConnection(qintptr socket);
119 static void SelectDefaultListen(
bool force=
false);
121 bool m_listening {
false};
122 int m_maxPendingConn {30};
124 QNetworkProxy m_proxy {QNetworkProxy::NoProxy};
143 emit newConnection(socket);
MythServer(QObject *parent=nullptr)
void newConnection(qintptr socket)
void newTcpConnection(qintptr socket) override
PoolServerType m_serverType
~PrivTcpServer() override=default
PoolServerType GetServerType(void)
void newConnection(qintptr socket)
Manages a collection of sockets listening on different ports.
void newDatagram(QByteArray, QHostAddress, quint16)
void setMaxPendingConnections(int n)
QList< PrivUdpSocket * > m_udpSockets
bool isListening(void) const
QNetworkProxy proxy(void)
void setProxy(const QNetworkProxy &proxy)
QList< PrivTcpServer * > m_tcpServers
void newConnection(QTcpSocket *)
int maxPendingConnections(void) const
ServerPool(QObject *parent=nullptr)
quint16 serverPort(void) const