53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#ifndef ZUTIL_NET_SOCKET_IO
|
|
#define ZUTIL_NET_SOCKET_IO
|
|
|
|
#include <iostream>
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <netdb.h>
|
|
#include <unistd.h>
|
|
#include <arpa/inet.h>
|
|
#include <string>
|
|
#include "socketexception.h"
|
|
using namespace std;
|
|
|
|
//const int MAXHOSTNAME = 200;
|
|
const int MAX_CONNECTIONS = 5;
|
|
const int SOCKET_BUFFER = 500;
|
|
const int MSG_PRIO = 0; // defined by dgame
|
|
|
|
namespace zutil{
|
|
class SocketIO{
|
|
private:
|
|
int socket_id;
|
|
sockaddr_in address;
|
|
public:
|
|
SocketIO();
|
|
virtual ~SocketIO();
|
|
|
|
// Server initialization
|
|
bool create();
|
|
bool bind( const int port );
|
|
bool listen() const;
|
|
bool accept( SocketIO& ) const;
|
|
|
|
// Client initialization
|
|
bool connect( const string host, const int port );
|
|
|
|
// Data Transimission
|
|
bool write( const char c ) const;
|
|
bool write( const string ) const;
|
|
bool write( const char* buf, const size_t len ) const;
|
|
|
|
char read( ) const;
|
|
int read( string& ) const;
|
|
int read( char* buf, const size_t len ) const;
|
|
|
|
|
|
void set_non_blocking( const bool );
|
|
bool is_valid() const { return socket_id != -1; }
|
|
};
|
|
}
|
|
|
|
#endif
|