tcpclient.h

来自「Socketlib: 一个轻量级的C++ 封装Socket C API 网络编程」· C头文件 代码 · 共 61 行

H
61
字号
/*
* Copyright (C) 2005-2007 Zhang bao yuan(bolidezhang@gmail.com)
* All rights reserved.
* 
* 文件名称:TcpClient.h
* 摘    要:TcpClient
* 作    者:张保元 bolidezhang@gmail.com
* 完成日期:2005/07/16
*
*/

#pragma once
#include <map>
#include <list>
#include <string>
#include "SocketSource.h"
#include "SocketLib.h"
#include "sync/threadmutex.h"

namespace SL
{

class SOCKETLIB_API CTcpClient : public CSocketSource
{
public:
	CTcpClient(void);
	virtual ~CTcpClient(void);

	void SetInterface(CAppLog *pAppLog, CSocketEvent *pSocketEvent, CSocketRunner *pSocketRunner);
	void SetBufferSize(int nRecvBufferSize, int nSendBufferSize);

	virtual bool DoOpen();
	bool Open(const char *szServerName, unsigned short nServerPort, int nLocalPort = 0);
	bool Close();

	bool IsConnected() const;
	bool Disconnect(SOCKET hSocket, bool bForce = false);
	int  Send(const char *szData, int nLen, bool bConnected = true);

	SOCKET GetSocketHandle() const;
protected:
	bool PostRecv(SOCKET hSocket, void *p);
	int  Recv(SOCKET hSocket, void *pAttachInfo, const char *szData, int nLen);

protected:
	SOCKET m_hSocket;

	// 连接状态
	bool   m_bIsConnected;

	//锁
	SYNC::CThreadMutex m_lock;

	SOCKET_SESSION   m_SocketSession;
	std::string		 m_strServerName;    //远程服务器名字:可以是IP地址(218.1.65.74)或域名(www.cga.com.cn)
	unsigned short   m_nServerPort;    
	unsigned short   m_nLocalPort;
};

};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?