sockettraffic.h

来自「上位机vc6.0编程控制西门子GPRS模块实现短信收发」· C头文件 代码 · 共 57 行

H
57
字号
// SocketTraffic.h: interface for the CSocketTraffic class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SOCKETTRAFFIC_H__368582C9_4CD9_4A4C_8EA2_7699285EEE9D__INCLUDED_)
#define AFX_SOCKETTRAFFIC_H__368582C9_4CD9_4A4C_8EA2_7699285EEE9D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CSocketTraffic  
{
public:
	CSocketTraffic();
	virtual ~CSocketTraffic();

	int m_nSendIn;		// 发送队列的输入指针
	int m_nSendOut;		// 发送队列的输出指针
	int m_nRecvIn;		// 接收队列的输入指针
	int m_nRecvOut;		// 接收队列的输出指针
	int m_nConnectIn;	// 连接队列的输入指针
	int m_nConnectOut;	// 连接队列的输出指针
	int m_nCloseIn;		// 关闭队列的输入指针
	int m_nCloseOut;	// 关闭队列的输出指针
	BOOL m_bThreadStatus;	// 线程状态标志位,为真线程运行,否则挂起
	BOOL m_bThreadWait;	// 线程已经被挂起

	HANDLE m_hKillThreadEvent;		// 通知子线程关闭的事件
	HANDLE m_hThreadKilledEvent;	// 子线程宣告关闭的事件
	HANDLE m_hThreadRunEvent;

	SOCKET_PARAM m_ConnectSocket[MAX_SM_SEND];				// 需要建立的socket连接建立
	SOCKET_PARAM m_CloseSocket[MAX_SM_SEND];
	SOCKETDATA_PARAM m_SocketSend[MAX_SM_SEND];		// 发送数据队列
	SOCKETDATA_PARAM m_SocketRecv[MAX_SM_SEND];		// 接收数据队列
	CArray<SOCKET_PARAM,SOCKET_PARAM>SocketBuffer;// 存储已经建立的socket连接
	CRITICAL_SECTION m_csSend;		// 与发送相关的临界段
	CRITICAL_SECTION m_csRecv;		// 与接收相关的临界段
	CRITICAL_SECTION m_csConnect;	// 与建立socket连接的临界代码段
	CRITICAL_SECTION m_csClose;		// 与关闭socket连接的临界代码段

	void PutConnectSocket(SOCKET_PARAM* pSocketParam);	// 将要连接的socket放入队列中
	BOOL GetConnectSocket(SOCKET_PARAM* pSocketParam);	// 从队列中取出一个需要连接的socket
	void PutCloseSocket(SOCKET_PARAM* pSocketParam);	// 将要关闭的socket放入队列中
	BOOL GetCloseSocket(SOCKET_PARAM* pSocketParam);	// 从队列中取出一个需要关闭的socket
	void PutSendData(SOCKETDATA_PARAM* pSocketParam);	// 将待发送数据放入发送队列
	BOOL GetSendData(SOCKETDATA_PARAM* pSocketParam);	// 从发送队列中取一条数据
	void PutRecvData(SOCKETDATA_PARAM* pSocketParam, int nCount);	// 将数据放入接收队列
	BOOL GetRecvData(SOCKETDATA_PARAM* pSocketParam);	// 从接收队列中取一桢数据
	void SetThreadStatus(BOOL status);					// 改变线程的状态,为真则准备运行,否则挂起
	BOOL GetThreadStatus();								
	static UINT SocketThread(LPVOID lpParam);	// 数据发送处理子程序
};

#endif // !defined(AFX_SOCKETTRAFFIC_H__368582C9_4CD9_4A4C_8EA2_7699285EEE9D__INCLUDED_)

⌨️ 快捷键说明

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