Loading...
Searching...
No Matches
TcpSocket.h File Reference
#include <SFML/Network/Export.h>
#include <SFML/Network/IpAddress.h>
#include <SFML/Network/SocketStatus.h>
#include <SFML/Network/Types.h>
#include <SFML/System/Time.h>
#include <stddef.h>

Go to the source code of this file.

Functions

sfTcpSocketsfTcpSocket_create (void)
 Create a new TCP socket.
 
void sfTcpSocket_destroy (sfTcpSocket *socket)
 Destroy a TCP socket.
 
void sfTcpSocket_setBlocking (sfTcpSocket *socket, sfBool blocking)
 Set the blocking state of a TCP listener.
 
sfBool sfTcpSocket_isBlocking (const sfTcpSocket *socket)
 Tell whether a TCP socket is in blocking or non-blocking mode.
 
unsigned short sfTcpSocket_getLocalPort (const sfTcpSocket *socket)
 Get the port to which a TCP socket is bound locally.
 
sfIpAddress sfTcpSocket_getRemoteAddress (const sfTcpSocket *socket)
 Get the address of the connected peer of a TCP socket.
 
unsigned short sfTcpSocket_getRemotePort (const sfTcpSocket *socket)
 Get the port of the connected peer to which a TCP socket is connected.
 
sfSocketStatus sfTcpSocket_connect (sfTcpSocket *socket, sfIpAddress remoteAddress, unsigned short remotePort, sfTime timeout)
 Connect a TCP socket to a remote peer.
 
void sfTcpSocket_disconnect (sfTcpSocket *socket)
 Disconnect a TCP socket from its remote peer.
 
sfSocketStatus sfTcpSocket_send (sfTcpSocket *socket, const void *data, size_t size)
 Send raw data to the remote peer of a TCP socket.
 
sfSocketStatus sfTcpSocket_sendPartial (sfTcpSocket *socket, const void *data, size_t size, size_t *sent)
 Send raw data to the remote peer.
 
sfSocketStatus sfTcpSocket_receive (sfTcpSocket *socket, void *data, size_t size, size_t *received)
 Receive raw data from the remote peer of a TCP socket.
 
sfSocketStatus sfTcpSocket_sendPacket (sfTcpSocket *socket, sfPacket *packet)
 Send a formatted packet of data to the remote peer of a TCP socket.
 
sfSocketStatus sfTcpSocket_receivePacket (sfTcpSocket *socket, sfPacket *packet)
 Receive a formatted packet of data from the remote peer.
 

Function Documentation

◆ sfTcpSocket_connect()

sfSocketStatus sfTcpSocket_connect ( sfTcpSocket socket,
sfIpAddress  remoteAddress,
unsigned short  remotePort,
sfTime  timeout 
)

Connect a TCP socket to a remote peer.

In blocking mode, this function may take a while, especially if the remote peer is not reachable. The last parameter allows you to stop trying to connect after a given timeout. If the socket was previously connected, it is first disconnected.

Parameters
socketTCP socket object
remoteAddressAddress of the remote peer
remotePortPort of the remote peer
timeoutMaximum time to wait
Returns
Status code

◆ sfTcpSocket_create()

sfTcpSocket * sfTcpSocket_create ( void  )

Create a new TCP socket.

Returns
A new sfTcpSocket object

◆ sfTcpSocket_destroy()

void sfTcpSocket_destroy ( sfTcpSocket socket)

Destroy a TCP socket.

Parameters
socketTCP socket to destroy

◆ sfTcpSocket_disconnect()

void sfTcpSocket_disconnect ( sfTcpSocket socket)

Disconnect a TCP socket from its remote peer.

This function gracefully closes the connection. If the socket is not connected, this function has no effect.

Parameters
socketTCP socket object

◆ sfTcpSocket_getLocalPort()

unsigned short sfTcpSocket_getLocalPort ( const sfTcpSocket socket)

Get the port to which a TCP socket is bound locally.

If the socket is not connected, this function returns 0.

Parameters
socketTCP socket object
Returns
Port to which the socket is bound

◆ sfTcpSocket_getRemoteAddress()

sfIpAddress sfTcpSocket_getRemoteAddress ( const sfTcpSocket socket)

Get the address of the connected peer of a TCP socket.

It the socket is not connected, this function returns sfIpAddress_None.

Parameters
socketTCP socket object
Returns
Address of the remote peer

◆ sfTcpSocket_getRemotePort()

unsigned short sfTcpSocket_getRemotePort ( const sfTcpSocket socket)

Get the port of the connected peer to which a TCP socket is connected.

If the socket is not connected, this function returns 0.

Parameters
socketTCP socket object
Returns
Remote port to which the socket is connected

◆ sfTcpSocket_isBlocking()

sfBool sfTcpSocket_isBlocking ( const sfTcpSocket socket)

Tell whether a TCP socket is in blocking or non-blocking mode.

Parameters
socketTCP socket object
Returns
sfTrue if the socket is blocking, sfFalse otherwise

◆ sfTcpSocket_receive()

sfSocketStatus sfTcpSocket_receive ( sfTcpSocket socket,
void *  data,
size_t  size,
size_t *  received 
)

Receive raw data from the remote peer of a TCP socket.

In blocking mode, this function will wait until some bytes are actually received. This function will fail if the socket is not connected.

Parameters
socketTCP socket object
dataPointer to the array to fill with the received bytes
sizeMaximum number of bytes that can be received
receivedThis variable is filled with the actual number of bytes received
Returns
Status code

◆ sfTcpSocket_receivePacket()

sfSocketStatus sfTcpSocket_receivePacket ( sfTcpSocket socket,
sfPacket packet 
)

Receive a formatted packet of data from the remote peer.

In blocking mode, this function will wait until the whole packet has been received. This function will fail if the socket is not connected.

Parameters
socketTCP socket object
packetPacket to fill with the received data
Returns
Status code

◆ sfTcpSocket_send()

sfSocketStatus sfTcpSocket_send ( sfTcpSocket socket,
const void *  data,
size_t  size 
)

Send raw data to the remote peer of a TCP socket.

To be able to handle partial sends over non-blocking sockets, use the sfTcpSocket_sendPartial(sfTcpSocket*, const void*, std::size_t, size_t*) overload instead. This function will fail if the socket is not connected.

Parameters
socketTCP socket object
dataPointer to the sequence of bytes to send
sizeNumber of bytes to send
Returns
Status code

◆ sfTcpSocket_sendPacket()

sfSocketStatus sfTcpSocket_sendPacket ( sfTcpSocket socket,
sfPacket packet 
)

Send a formatted packet of data to the remote peer of a TCP socket.

In non-blocking mode, if this function returns sfSocketPartial, you must retry sending the same unmodified packet before sending anything else in order to guarantee the packet arrives at the remote peer uncorrupted. This function will fail if the socket is not connected.

Parameters
socketTCP socket object
packetPacket to send
Returns
Status code

◆ sfTcpSocket_sendPartial()

sfSocketStatus sfTcpSocket_sendPartial ( sfTcpSocket socket,
const void *  data,
size_t  size,
size_t *  sent 
)

Send raw data to the remote peer.

This function will fail if the socket is not connected.

Parameters
socketTCP socket object
dataPointer to the sequence of bytes to send
sizeNumber of bytes to send
sentThe number of bytes sent will be written here
Returns
Status code

◆ sfTcpSocket_setBlocking()

void sfTcpSocket_setBlocking ( sfTcpSocket socket,
sfBool  blocking 
)

Set the blocking state of a TCP listener.

In blocking mode, calls will not return until they have completed their task. For example, a call to sfTcpSocket_receive in blocking mode won't return until new 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.

Parameters
socketTCP socket object
blockingsfTrue to set the socket as blocking, sfFalse for non-blocking