30.11.2010 - initial commit
This commit is contained in:
50
piethernet.h
Normal file
50
piethernet.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#ifndef PIETHERNET_H
|
||||
#define PIETHERNET_H
|
||||
|
||||
#include "pithread.h"
|
||||
#ifndef WINDOWS
|
||||
# include <netinet/in.h>
|
||||
# include <arpa/inet.h>
|
||||
# include <sys/socket.h>
|
||||
#else
|
||||
# include <winsock2.h>
|
||||
# define SHUT_RDWR SD_BOTH
|
||||
#endif
|
||||
|
||||
#define BUFFER_SIZE 4096
|
||||
|
||||
typedef bool (*EthernetFunc)(void * , char * );
|
||||
|
||||
class PIEthernet: public PIThread
|
||||
{
|
||||
public:
|
||||
// slot is any function format "bool <func>(void*, char*)"
|
||||
PIEthernet(string ip, int port, void * data, EthernetFunc slot = 0);
|
||||
~PIEthernet();
|
||||
|
||||
void setSlot(EthernetFunc func) {ret_func = func;}
|
||||
void setReadAddress(string ip, int port) {ip_ = ip; port_ = port;}
|
||||
void setSendAddress(string ip, int port) {ip_s = ip; port_s = port;}
|
||||
|
||||
bool send(string ip, int port, char * data, int size);
|
||||
bool send(char * data, int size);
|
||||
bool init();
|
||||
bool initialized() const {return sock != -1;}
|
||||
|
||||
private:
|
||||
void begin();
|
||||
void run();
|
||||
void end();
|
||||
|
||||
|
||||
int sock, sock_s, port_, port_s, wrote;
|
||||
sockaddr_in addr_, saddr_;
|
||||
string ip_, ip_s;
|
||||
EthernetFunc ret_func;
|
||||
char * buffer;
|
||||
void * data;
|
||||
int readed;
|
||||
|
||||
};
|
||||
|
||||
#endif // PIETHERNET_H
|
||||
Reference in New Issue
Block a user