⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sockettraffic.h

📁 上位机vc++对摩托罗拉GPRS模块G24编程实现短信收发
💻 H
字号:
// 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

#include "Sms.h"
#include "Comm.h"

class CSocketTraffic  
{
public:
	void SetRecvMsgFlag();
	BOOL GetSendMessage(SM_PARAM* pparam);
	BOOL GetRecvMessage(SM_PARAM* pparam);
	void PutRecvMessage(SM_PARAM* pparam, int nCount);
	void PutSendMessage(SM_PARAM* pparam);
	CSocketTraffic();
	virtual ~CSocketTraffic();

	int m_nSendIn;		// 发送队列的输入指针
	int m_nMessageSendIn;
	int m_nMessageRecvIn;
	int m_nMessageSendOut;
	int m_nMessageRecvOut;
	int m_nSendOut;		// 发送队列的输出指针
	int m_nRecvIn;		// 接收队列的输入指针
	int m_nRecvOut;		// 接收队列的输出指针
	int m_nConnectIn;	// 连接队列的输入指针
	int m_nConnectOut;	// 连接队列的输出指针
	int m_nCloseIn;		// 关闭队列的输入指针
	int m_nCloseOut;	// 关闭队列的输出指针
	BOOL m_bThreadWait;	// 线程已经被挂起
	BOOL m_bBeginFlag;
	BOOL RecMsgFlag;

	HANDLE m_hKillThreadEvent;		// 通知子线程关闭的事件
	HANDLE m_hThreadKilledEvent;	// 子线程宣告关闭的事件
	SM_PARAM m_SmSend[MAX_SM_SEND];		// 发送短消息队列
	SM_PARAM m_SmRecv[MAX_SM_SEND];		// 接收短消息队列

	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];		// 接收数据队列
	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);	// 从接收队列中取一桢数据
	BOOL GetThreadStatus();								
	static UINT SocketThread(LPVOID lpParam);	// 数据发送处理子程序
};

#endif // !defined(AFX_SOCKETTRAFFIC_H__368582C9_4CD9_4A4C_8EA2_7699285EEE9D__INCLUDED_)

⌨️ 快捷键说明

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