?? cmppsocket_bcb.h
字號:
/******************************************************************************
FileName : CcmppSocket.h
Description : 短消息發送程序
Version : 1.0
Date : 2003年4月6日
Author : 潘昱宇
Other : 目前只支持CMPP3.0
編譯條件: 單字節對齊,取消循環變量作用域限定,MFC兼容模式
EMail : rebbie@163.com
******************************************************************************/
#include "cmpp.h"
#include "sgip.h"
#include <windows.h>
#ifndef _CMPP_SOCKET_H_
#define _CMPP_SOCKET_H_
const int nCMPP_RCV_WINDOW_SIZE =2048 ; // 接收窗口大小
class CcmppSocket
{
public:
CcmppSocket ();
~CcmppSocket();
public:
int init( char *spid, char *passwd, char *ismg, unsigned short port = 7890);
int Submit( CMPP_SUBMIT &msg, DWORD dwMilliseconds = INFINITE);
private:
int _connect( char *ismg, unsigned short port);
int _login ( char *spid, char *passwd);
void _logout (); // 注銷
void _exit (); // 清除工作線程,退出接口
static DWORD WINAPI thread_send( LPVOID pdata);
static DWORD WINAPI thread_recv( LPVOID pdata);
static DWORD WINAPI thread_actv( LPVOID pdata);
private:
char* _timestamp( char *buf); // 生成10位的時間戳
__int64 _ntoh64 ( __int64 inval); // 將64位的整數轉成網絡字節順序
__int64 _hton64 ( __int64 inval); // 將64位的整數轉成主機字節順序
int _getseqid(); // 得到下一個數據包的流水號
int _send( char *buf, int len); // 同步發送數據
int _recv( char *buf, int len); // 同步接收數據
private:
SOCKET _soc; // 連接服務器的套接字
bool _binitialized; // 接口初始化標志
bool _bexitting; // 請求線程退出
char _spid[10]; // 6 位企業代碼
char _ismg[20]; // 短信網關IP地址
char _passwd[20]; // 企業登陸短信網關的口令
unsigned short _port; // 短信網關的端口,默認7890
int _seqid; // 流水號,需同步
HANDLE _hsend; // 發送線程
HANDLE _hrecv; // 接收線程
HANDLE _hactv; // 鏈路維持線程
HANDLE _hguard; // 守衛線程,負責自動重連
HANDLE _hsema_wnd; // 計數數據窗口的空格
HANDLE _hevnt_data; // 計數新提交的數據報
HANDLE _hsema_rev; // 數據接收窗口空余大小
CRITICAL_SECTION _csec_wnd; // 同步數據窗口
CRITICAL_SECTION _csec_snd; // 同步發送數據
CRITICAL_SECTION _csec_recv; // 同步接收數據
CRITICAL_SECTION _csec_seq; // 同步流水號
CRITICAL_SECTION _csec_revwnd; // 同步數據接收窗口
CMPP_PACKAGE _window[nCMPP_WINDOW_SIZE]; // 數據窗口,需同步
// CMPP_FUNC_MAP _func_map[]; // 函數映射表
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -