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

📄 shppsocket.h

📁 本源码为移动公司话费查询中间件TUXEDO使用的实例
💻 H
字号:
/***********************************************
* file name:     SHPPSocket.h
* date :         2001.07.17
* 用途:         接收和发送SHPP的请求和应答
************************************************/
#if !defined(_SHPPSOCKET_H_LINYOUHAI)
#define _SHPPSOCKET_H_LINYOUHAI

//#define SHPP_SOCKET_ACCEPT  //是否要Run()

//#include "SHPP.h"
#include "blocksock.h"
#include "OSThread.h"
#include "OSHashTable.h"

class CSHPPSocket :public CKNSocket
{
public:

	//构造器。开辟一块足够大的缓存来接收数据;
	//初始化m_nReadBuf和m_nReadCount为0;初始化SOCDET为SOCK_STREAM。
	CSHPPSocket();
	CSHPPSocket(CKNSocket* inSocket);
	~CSHPPSocket();

	//此函数每次接收一行请求("\r\n"结束),并copy一行请求
	//如果没遇到"\r\n",那么将继续接收请求,直到行结束
	int ReadRtspHeaderLine(char* pchOut, const int nSize, const int nSecs = 0);

	//此函数获取每行的指针头和长度
	//如果没遇到"\r\n",那么将继续接收请求,直到行结束("\r\n"结束)
	int ReadRtspHeaderLine(char** pchOutRow, const int nSecs = 0);

	//接收固定大小nSize字节的请求,往m_pReadBuf后存储
	int ReadRtspResponse(char* pchOut, const int nSize, const int nSecs);

	//设置m_unReadBuf和m_unReadCount为0,但不释放内存。
	void   SetReadBuf() { m_unReadBuf = 0; m_unReadTotal = 0; }

	//获取接收到的客户请求的总字节数
	UInt32 GetReadTotal() { return m_unReadTotal; }

	//获取已读取的长度
	UInt32 GetReadBufSize() { return m_unReadBuf; }

	//获取请求的头指针。
	char*  GetReadBuf() { return m_pReadBuf; }

private:
	char*     m_pReadBuf;   // read buffer
	UInt32    m_unReadBuf;  // 已读取的长度
	UInt32    m_unReadTotal;// 接收到的总长度
	UInt32    m_unBuffer;   //buffer size;
};


#endif //defined(_SHPPSOCKET_H_LINYOUHAI)

⌨️ 快捷键说明

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