QServerSocket(3qt)

πŸ“¦ version 3.3.8b, in fedora 43, fedora 44

πŸ’– QServerSocket(3qt) πŸ’–

okay bestie, welcome to QServerSocket(3qt) β€” yes it's a Qt 3 man page, yes it's giving vintage, and yes we're gonna make it make sense. sit down, grab a strawberry, let's go πŸ“βœ¨


✨ NAME ✨

QServerSocket β€” a TCP-based server, periodt πŸ’…


🌸 SYNOPSIS 🌸

#include <qserversocket.h>

Inherits QObject. (yes she has a whole family tree, we love a lineage πŸ‘‘)

πŸ‘― Public Members πŸ‘―

QServerSocket ( Q_UINT16 port, int backlog = 1, QObject * parent = 0,
    const char * name = 0 )
QServerSocket ( const QHostAddress & address, Q_UINT16 port, int backlog
    = 1, QObject * parent = 0, const char * name = 0 )
QServerSocket ( QObject * parent = 0, const char * name = 0 )
virtual ~QServerSocket ()
bool ok () const
Q_UINT16 port () const
int socket () const
virtual void setSocket ( int socket )
QHostAddress address () const
virtual void newConnection ( int socket ) = 0

🫢 Protected Members 🫢

QSocketDevice * socketDevice ()

πŸ¦‹ DESCRIPTION πŸ¦‹

The QServerSocket class provides a TCP-based server. no cap, that's the whole vibe.

It's a convenience class for accepting incoming TCP connections. The way that you get to choose: you can specify the port, or you can let QServerSocket pick one for you. And you can listen on just one address, or on all the machine's addresses. your call, bestie, you're the main character here πŸ’…

Using the API is literally so simple it's iconic:

  • subclass QServerSocket
  • call the constructor of your choice
  • implement newConnection() to handle new incoming connections

and that's it. there is nothing more to do. ate. πŸ”₯

ok important lil reality check: due to lack of support in the underlying APIs, QServerSocket cannot accept or reject connections conditionally. so no vibes-based gatekeeping at the socket level, sorry 😭

See also QSocket, QSocketDevice, QHostAddress, QSocketNotifier, and Input/Output and Networking. 🌈


πŸ’œ MEMBER FUNCTION DOCUMENTATION πŸ’œ

QServerSocket::QServerSocket ( Q_UINT16 port, int backlog = 1, QObject * parent = 0, const char * name = 0 )

Creates a server socket object that will serve the given port on all the addresses of this host. if port is 0, QServerSocket will pick a suitable port in a system-dependent manner (mysterious! iconic! 🧚). use backlog to specify how many pending connections the server can have.

The parent and name arguments are passed on to the QObject constructor.

⚠️ Warning: on Tru64 Unix systems a value of 0 for backlog means you don't accept any connections at all. specify a value larger than 0, bestie, don't do that to yourself πŸ’€

QServerSocket::QServerSocket ( const QHostAddress & address, Q_UINT16 port, int backlog = 1, QObject * parent = 0, const char * name = 0 )

Creates a server socket object that will serve the given port only on the given address. use backlog to specify how many pending connections the server can have.

The parent and name arguments are passed on to the QObject constructor.

⚠️ Warning: on Tru64 Unix systems a value of 0 for backlog means you don't accept any connections at all; you should specify a value larger than 0. same warning, same energy, still true 🫢

QServerSocket::QServerSocket ( QObject * parent = 0, const char * name = 0 )

Construct an empty server socket. like, a blank canvas, a fresh face card ✨

This constructor, in combination with setSocket(), allows us to use the QServerSocket class as a wrapper for other socket types (e.g. Unix Domain Sockets under Unix). versatile queen πŸ‘‘

The parent and name arguments are passed on to the QObject constructor.

See also setSocket().

QServerSocket::~QServerSocket () [virtual]

Destroys the socket. rip boo you had a good run 😭

This causes any backlogged connections (connections that have reached the host, but not yet been completely set up by calling QSocketDevice::accept()) to be severed.

Existing connections continue to exist; this only affects the acceptance of new connections. so your current besties stay, it's just that no new ones get let in the door πŸšͺ

QHostAddress QServerSocket::address () const

Returns the address on which this object listens, or 0.0.0.0 if this object listens on more than one address. ok() must be TRUE before calling this function. check first, don't be messy πŸ’…

See also port() and QSocketDevice::address().

void QServerSocket::newConnection ( int socket ) [pure virtual]

This pure virtual function is responsible for setting up a new incoming connection. socket is the fd (file descriptor) for the newly accepted connection. this is THE one you have to implement, no skipping, it's mandatory bestie, it's giving homework but make it slay πŸ”₯

bool QServerSocket::ok () const

Returns TRUE if the construction succeeded; otherwise returns FALSE. vibe check for your socket 🫢

Q_UINT16 QServerSocket::port () const

Returns the port number on which this server socket listens. This is always non-zero; if you specify 0 in the constructor, QServerSocket will pick a non-zero port itself. ok() must be TRUE before calling this function. yes again, ok() first, always, it's the rule πŸ‘‘

See also address() and QSocketDevice::port().

Example: network/httpd/httpd.cpp.

void QServerSocket::setSocket ( int socket ) [virtual]

Sets the socket to use socket. bind() and listen() should already have been called for socket. like, do your prep work first bestie, don't show up uninvited 🌸

This allows us to use the QServerSocket class as a wrapper for other socket types (e.g. Unix Domain Sockets).

int QServerSocket::socket () const

Returns the operating system socket. the raw one. the real one. the unfiltered one πŸ’€

QSocketDevice * QServerSocket::socketDevice () [protected]

Returns a pointer to the internal socket device. The returned pointer is 0 if there is no connection or pending connection. so check it before you dereference it, obviously πŸ™ˆ

There is normally no need to manipulate the socket device directly since this class does all the necessary setup for most client or server socket applications. she handles it, you relax πŸ’…


🌈 SEE ALSO 🌈


Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the license file included in the distribution for a complete license statement.


πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically from the source code. (no human wrote this, it just manifested, we respect the grind ✨)


πŸ’€ BUGS πŸ’€

If you find a bug in Qt, please report it as described in http://doc.trolltech.com/bughowto.html. Good bug reports help us to help you. Thank you. (they're being so polite about it and honestly? valid 🫢)

The definitive Qt documentation is provided in HTML format; it is located at $QTDIR/doc/html and can be read using Qt Assistant or with a web browser. This man page is provided as a convenience for those users who prefer man pages, although this format is not officially supported by Trolltech. iykyk, man pages are a whole aesthetic πŸ“–

If you find errors in this manual page, please report them to qt-bugs@trolltech.com. Please include the name of the manual page (qserversocket.3qt) and the Qt version (3.3.8). include the receipts bestie, it helps so much 🧚


and that's the whole page, babes πŸ’– this came to you from Trolltech AS, dated 2 February 2007, running Qt 3.3.8 β€” old, iconic, still out here serving TCP connections like it's nothing. go forth and newConnection() responsibly πŸŒΈβœ¨πŸŽ€

πŸ“¦ where this page comes from