diff options
Diffstat (limited to 'include/Socket.h')
-rw-r--r-- | include/Socket.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/Socket.h b/include/Socket.h new file mode 100644 index 0000000..355d3b2 --- /dev/null +++ b/include/Socket.h @@ -0,0 +1,55 @@ +#ifndef __SOCKET_H__ +#define __SOCKET_H__ +#ifdef __cplusplus + +#include "String.h" +#include "Handle.h" +#include "Exceptions.h" +#include "Output.h" +#include "Input.h" + +/* + * Cree un socket. + * + * SetLocal(hostname, port) définit le hostname local et le port a écouter, si le + * socket est destine a etre un socket serveur, ou la vhost et le port source si + * le socket est destine a se etre un socket client. Renvoie faux si probleme quelconque. + * + * Connect(hostname, port) passe le socket en mode client et va se connecter sur + * l'adresse hostname:port specifiee. + * + * Listen passe le socket en mode serveur. + * + * Accept permet de récuperer un client qui se connecte sur un socket server, et + * renvoie le socket de lecture/ecriture correspondant. + * + * Les methodes IsConnected et IsListening permettent de verifier l'etat du socket. + * + * Les fonctions WriteFile et ReadFile permettent de transmettre un fichier sur le socket. + * Tres utile pour l'upload ou le download. + */ + +class Socket : public Handle { + public: + Socket() throw (GeneralException); + virtual ~Socket() {} + bool SetLocal(String, int = 0); + bool Connect(String, int); + bool Listen(); + Socket Accept(); + bool IsConnected(); + bool IsListening(); + size_t WriteFile(Output &); + size_t ReadFile(Input &); + virtual bool CanRead(); + virtual bool CanWrite(); + virtual String GetName(); + private: + Socket(int s); + bool connected, listening; +}; + +#else +#error This only works with a C++ compiler +#endif +#endif |