Loading...
Searching...
No Matches
Socket.hpp
Go to the documentation of this file.
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2014 Laurent Gomila (laurent.gom@gmail.com)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_SOCKET_HPP
26#define SFML_SOCKET_HPP
27
29// Headers
34#include <vector>
35
36
37namespace sf
38{
39class SocketSelector;
40
46{
47public:
48
60
65 enum
66 {
68 };
69
70public:
71
76 virtual ~Socket();
77
95 void setBlocking(bool blocking);
96
105 bool isBlocking() const;
106
107protected:
108
113 enum Type
114 {
117 };
118
128
140
147 void create();
148
158 void create(SocketHandle handle);
159
166 void close();
167
168private:
169
170 friend class SocketSelector;
171
173 // Member data
175 Type m_type;
176 SocketHandle m_socket;
177 bool m_isBlocking;
178};
179
180} // namespace sf
181
182
183#endif // SFML_SOCKET_HPP
184
185
#define SFML_NETWORK_API
NonCopyable()
Default constructor.
Multiplexer that allows to read from multiple sockets.
void setBlocking(bool blocking)
Set the blocking state of the socket.
friend class SocketSelector
Definition Socket.hpp:170
Status
Status codes that may be returned by socket functions.
Definition Socket.hpp:54
@ Error
An unexpected error happened.
Definition Socket.hpp:58
@ Done
The socket has sent / received the data.
Definition Socket.hpp:55
@ NotReady
The socket is not ready to send / receive data yet.
Definition Socket.hpp:56
@ Disconnected
The TCP socket has been disconnected.
Definition Socket.hpp:57
Type
Types of protocols that the socket can use.
Definition Socket.hpp:114
@ Udp
UDP protocol.
Definition Socket.hpp:116
@ Tcp
TCP protocol.
Definition Socket.hpp:115
SocketHandle getHandle() const
Return the internal handle of the socket.
@ AnyPort
Special value that tells the system to pick any available port.
Definition Socket.hpp:67
void close()
Close the socket gracefully.
virtual ~Socket()
Destructor.
Socket(Type type)
Default constructor.
void create()
Create the internal representation of the socket.
bool isBlocking() const
Tell whether the socket is in blocking or non-blocking mode.
void create(SocketHandle handle)
Create the internal representation of the socket from a socket handle.
int SocketHandle