#ifndef __TCP_CLIENT_HEADER__
#define __TCP_CLIENT_HEADER__

#include "Global.h"
// winsocket��;
#include <Ws2tcpip.h>
#pragma comment(lib,"Ws2_32.lib")

#pragma once

#ifdef IRCONTROL_EXPORTS
#define IRCONTROL_API __declspec(dllexport)
#else
#define IRCONTROL_API __declspec(dllimport)
#endif

class IRCONTROL_API CTCPClient
{
public:
	CTCPClient();
	~CTCPClient();

	// ��ʼ���׽��ֿ�;
	bool InitSocket();
	// ���ӷ�����;
	bool Connect(std::string ip, int port);
	// ���ӷ�����;
	bool SelectConnect(std::string ip, int port, int time_out = 3);
	// �Ͽ�����;
	void DisConnect();
	// ��������;
	bool Send(std::string s_data, std::string &r_data);
	// ����;
	void ReConnect(DWORD dwError = WSAENETRESET);
protected:
	bool checkEOM(std::string& data);
private:
	// �ͻ����׽���;
	SOCKET m_socket;
	// �ͻ��˵�ַ;
	sockaddr_in m_sin;
	// ip;
	std::string m_ip;
	// port;
	int m_port;
};

#endif //__TCP_CLIENT_HEADER__