diff options
author | Pixel <Pixel> | 2001-09-20 23:27:01 +0000 |
---|---|---|
committer | Pixel <Pixel> | 2001-09-20 23:27:01 +0000 |
commit | 8346d0774d2d1e076038db27f65f1d082a460f16 (patch) | |
tree | 132f84cf1ef45d5006a2b1d52d4d40b1e8e51abc /include/Socket.h |
Initial revision
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 |