eis/inc/zlib/UdpConnection.h

69 lines
1.3 KiB
C++

/*********************************************************************
*
* overview:
* UDP communication
*
*
* copyright: Shanghai Baosight Software Co., Ltd.
*
* Version history
* 1.0 2022-05-21 zoufuzhou create
*
*********************************************************************/
#pragma once
#include <iostream>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <sstream>
#include <string>
#include <IceUtil/Thread.h>
#include <zlib/MemTable.hpp>
#include <zlib/MessageDefine.h>
using namespace std;
class UdpConnection : public IceUtil::Thread
{
private:
int sHost;
struct sockaddr_in myaddr;//服务器地址
int retVal;//调用Socket函数的返回
char buffer[BUFF_SIZE];
string conip;
int conport;
int iMode;
int on;
// int subsize;//订阅点的个数
int m_eventNo;
bool m_completed;
int m_totallength;;
int m_isrun;
TCACHE m_tcache;
private:
bool Connect();
bool UdpMsg();
void AssembleMsg(const char* buffer,int length);
public:
virtual void run();
UdpConnection(const string& ip,int port,int eventNo = 0);
// void subscribe(const string& tags);
virtual ~UdpConnection(void);
};