00001 #ifndef __TCPSOCKET__
00002 #define __TCPSOCKET__
00003
00004 #include <unistd.h>
00005 #include <string.h>
00006 #include <netdb.h>
00007 #include <netinet/in.h>
00008 #include <sys/types.h>
00009 #include <sys/socket.h>
00010
00012 class TcpSocket
00013 {
00014 public:
00015
00017
00021 enum SocketError {UnknownError, SocketAccessError, UnknownHostError, SocketCreatingError, ConnectingError, SocketDataSendError, SocketDataReadError};
00022
00024
00028 enum SocketState {UnconnectedState, ConnectingState, ConnectedState, ErrorState};
00029
00031 TcpSocket();
00032
00034
00041 bool connectToHost(char * host_name, int host_port);
00042
00044
00048 void disconnectFromHost();
00049
00051
00058 int sendData(char * data, int data_size);
00059
00061
00067 int readData(char * buf, int buf_size);
00068
00070
00075 SocketError error() const { return _error; }
00076
00078
00081 SocketState state() const { return _state; }
00082
00083 private:
00084 SocketState _state;
00085 SocketError _error;
00086
00087 hostent *host;
00088 sockaddr_in serverSock;
00089 int mySocket;
00090 int port;
00091 };
00092
00093 #endif //__TCPSOCKET__