Socket that listens to new TCP connections. More...
#include <SFML/Network/TcpListener.hpp>
Public Types | |
enum | Status { Done , NotReady , Partial , Disconnected , Error } |
Status codes that may be returned by socket functions. More... | |
enum | { AnyPort = 0 } |
Some special values used by sockets. More... | |
Public Member Functions | |
TcpListener () | |
Default constructor. | |
unsigned short | getLocalPort () const |
Get the port to which the socket is bound locally. | |
Status | listen (unsigned short port, const IpAddress &address=IpAddress::Any) |
Start listening for incoming connection attempts. | |
void | close () |
Stop listening and close the socket. | |
Status | accept (TcpSocket &socket) |
Accept a new connection. | |
void | setBlocking (bool blocking) |
Set the blocking state of the socket. | |
bool | isBlocking () const |
Tell whether the socket is in blocking or non-blocking mode. | |
Protected Types | |
enum | Type { Tcp , Udp } |
Types of protocols that the socket can use. More... | |
Protected Member Functions | |
SocketHandle | getHandle () const |
Return the internal handle of the socket. | |
void | create () |
Create the internal representation of the socket. | |
void | create (SocketHandle handle) |
Create the internal representation of the socket from a socket handle. | |
Socket that listens to new TCP connections.
A listener socket is a special type of socket that listens to a given port and waits for connections on that port.
This is all it can do.
When a new connection is received, you must call accept and the listener returns a new instance of sf::TcpSocket that is properly initialized and can be used to communicate with the new client.
Listener sockets are specific to the TCP protocol, UDP sockets are connectionless and can therefore communicate directly. As a consequence, a listener socket will always return the new connections as sf::TcpSocket instances.
A listener is automatically closed on destruction, like all other types of socket. However if you want to stop listening before the socket is destroyed, you can call its close() function.
Usage example:
Definition at line 44 of file TcpListener.hpp.
|
inherited |
Some special values used by sockets.
Enumerator | |
---|---|
AnyPort | Special value that tells the system to pick any available port. |
Definition at line 66 of file Socket.hpp.
|
inherited |
Status codes that may be returned by socket functions.
Definition at line 53 of file Socket.hpp.
|
protectedinherited |
Types of protocols that the socket can use.
Enumerator | |
---|---|
Tcp | TCP protocol. |
Udp | UDP protocol. |
Definition at line 114 of file Socket.hpp.
sf::TcpListener::TcpListener | ( | ) |
Default constructor.
void sf::TcpListener::close | ( | ) |
Stop listening and close the socket.
This function gracefully stops the listener. If the socket is not listening, this function has no effect.
|
protectedinherited |
Create the internal representation of the socket.
This function can only be accessed by derived classes.
|
protectedinherited |
Create the internal representation of the socket from a socket handle.
This function can only be accessed by derived classes.
handle | OS-specific handle of the socket to wrap |
|
protectedinherited |
Return the internal handle of the socket.
The returned handle may be invalid if the socket was not created yet (or already destroyed). This function can only be accessed by derived classes.
unsigned short sf::TcpListener::getLocalPort | ( | ) | const |
Get the port to which the socket is bound locally.
If the socket is not listening to a port, this function returns 0.
|
inherited |
Tell whether the socket is in blocking or non-blocking mode.
Status sf::TcpListener::listen | ( | unsigned short | port, |
const IpAddress & | address = IpAddress::Any |
||
) |
Start listening for incoming connection attempts.
This function makes the socket start listening on the specified port, waiting for incoming connection attempts.
If the socket is already listening on a port when this function is called, it will stop listening on the old port before starting to listen on the new port.
When providing sf::Socket::AnyPort as port, the listener will request an available port from the system. The chosen port can be retrieved by calling getLocalPort().
port | Port to listen on for incoming connection attempts |
address | Address of the interface to listen on |
|
inherited |
Set the blocking state of the socket.
In blocking mode, calls will not return until they have completed their task. For example, a call to Receive in blocking mode won't return until some data was actually received. In non-blocking mode, calls will always return immediately, using the return code to signal whether there was data available or not. By default, all sockets are blocking.
blocking | True to set the socket as blocking, false for non-blocking |