// Class definition for socket level programming
// using C++.
#ifndef SOCKETCLASS_H
#define SOCKETCLASS_H
#include <stdlib.h>
#include <stdio.h>
#include <stream.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <strings.h>
// Error constants
#define NO_ERROR 0
#define SOCKET_OPEN_FAIL -1
#define SOCKET_BIND_FAIL -2
#define SOCKET_LISTEN_FAIL -3
#define SOCKET_IO_FAIL -4
#define DNS_DB_ERROR -5
#define SOCKET_CONNECT_FAIL -6
#define SOCKET_ACCEPT_FAIL -7
class Socket
{
public:
// Constructors
Socket (char *host, int port);
Socket (int lsock);
// Methods
void Close ();
int Error ();
char *ErrorMessage ();
int GetSocketNum ();
private:
int sock;
int error;
};
class ServerSocket
{
public:
// Constructors
ServerSocket (int port);
// Methods
Socket Accept ();
void Close ();
int Error ();
char *ErrorMessage ();
int GetSocketNum ();
private:
int sock;
int error;
};
#endif