www.pudn.com > inet_stock.zip > SV_JY.H
// define udp pack head
#define JY_CHKUSR_HEAD (LPSTR)"JYCHKUSR"
#define JY_CHGPWD_HEAD (LPSTR)"JYCHGPWD"
#define JY_BUYSELL_HEAD (LPSTR)"JYBUYSELL"
#define JY_SELL_HEAD (LPSTR)"JYSELL"
#define JY_CANCEL_HEAD (LPSTR)"JYCANCEL"
#define JY_YECX_HEAD (LPSTR)"JYYECX"
#define JY_CJCX_HEAD (LPSTR)"JYCJCX"
#define JY_WTCX_HEAD (LPSTR)"JYWTCX"
#define JY_CXEND_HEAD (LPSTR)"JYCXEND"
#define JY_TIMEOUT_HEAD (LPSTR)"JYTIMEOUT"
#define MAX_GDDM_SIZE 10
#define MAX_JYMM_SIZE 6
#define MAX_RQ_SIZE 6
#define MAX_GPDM_SIZE 6
#define MAX_HTHM_SIZE 6
#define MAX_TIME_SIZE 6
#define MAX_CANCEL_SENDCOUNT 10
#define MAX_CX_SENDCOUNT 20
// define udp request and answer pack structure
typedef struct tag_PACK_ASK_CHKUSR
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char jymm[MAX_JYMM_SIZE+1]; //
}JY_ASK_CHKUSR, FAR *LPJY_ASK_CHKUSR;
typedef struct tag_PACK_ANS_CHKUSR
{
char flag; //if 0,right,if -1 ,then user invalid
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
}JY_ANS_CHKUSR, FAR *LPJY_ANS_CHKUSR;
typedef struct tag_PACK_ASK_CHGPWD
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char xmm[MAX_JYMM_SIZE+1]; //
}JY_ASK_CHGPWD, FAR *LPJY_ASK_CHGPWD;
typedef struct tag_PACK_ANS_CHGPWD
{
char flag; // if 0 succeed,if -1 then failed
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
}JY_ANS_CHGPWD, FAR *LPJY_ANS_CHGPWD;
typedef struct tag_PACK_ASK_BUYSELL
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char gpdm[MAX_GPDM_SIZE+1]; //
char bs; // 'B', 'S'
int wtgs;
int wtjg;
}JY_ASK_BUYSELL, FAR *LPJY_ASK_BUYSELL;
typedef struct tag_PACK_ANS_BUYSELL
{
char flag; //0 succeed,-1 no money,-2 no stock
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
char hthm[MAX_HTHM_SIZE+1]; //
char bs;
}JY_ANS_BUYSELL, FAR *LPJY_ANS_BUYSELL;
typedef struct tag_CANCEL
{
char hthm[MAX_HTHM_SIZE+1];
}CANCEL, FAR *LPCANCEL;
typedef struct tag_PACK_ASK_CANCEL
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
short cancelCount;
CANCEL Cancel[MAX_CANCEL_SENDCOUNT]; //
}JY_ASK_CANCEL, FAR *LPJY_ASK_CANCEL;
typedef struct tag_PACK_ANS_CANCEL
{
char flag[MAX_CANCEL_SENDCOUNT]; //
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
}JY_ANS_CANCEL, FAR *LPJY_ANS_CANCEL;
typedef struct tag_PACK_ASK_YECX
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char gpdm[MAX_GPDM_SIZE+1]; //
}JY_ASK_YECX, FAR *LPJY_ASK_YECX;
typedef struct tag_GPTG
{
char gpdm[MAX_GPDM_SIZE+1]; //
char kys[9+1],gpye[9+1]; //
char ghrq[MAX_RQ_SIZE+1]; //
}JY_GPTG, FAR *LPJY_GPTG;
typedef struct tag_PACK_ANS_YECX
{
char flag;
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
short recnum; //
double kys,zjye;
LPJY_GPTG lpGptg;
}JY_ANS_YECX, FAR *LPJY_ANS_YECX;
typedef struct tag_PACK_ASK_CJCX
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char cjrq[MAX_RQ_SIZE+1]; //YYMMDD
char hthm[MAX_HTHM_SIZE+1]; // IF HTHM IS EMPTY,THEN RUQER ALL CJ
}JY_ASK_CJCX, FAR *LPJY_ASK_CJCX;
typedef struct tag_CJ
{
char hthm[MAX_HTHM_SIZE+1]; //
char cjsj[MAX_TIME_SIZE+1]; //HHMISS
char mmbz; //B,S
char gpdm[MAX_GPDM_SIZE+1];
char cjgs[8+1];
char cjjg[7+1];
}JY_CJ, FAR *LPJY_CJ;
typedef struct tag_PACK_ANS_CJCX
{
char flag;
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
short recnum;
char cjrq[MAX_RQ_SIZE+1]; //YYMMDD
LPJY_CJ lpCj;
}JY_ANS_CJCX, FAR *LPJY_ANS_CJCX;
typedef struct tag_PACK_ASK_WTCX
{
char jys; //
int userId;
char gddm[MAX_GDDM_SIZE+1]; //
char wtrq[MAX_RQ_SIZE+1]; //YYMMDD
char hthm[MAX_HTHM_SIZE+1]; // IF HTHM IS EMPTY,THEN RUQER ALL WT
}JY_ASK_WTCX, FAR *LPJY_ASK_WTCX;
typedef struct tag_WT
{
char hthm[MAX_HTHM_SIZE+1]; //
char wtsj[MAX_TIME_SIZE+1]; //HHMISS
char mmbz; //B,S
char gpdm[MAX_GPDM_SIZE+1];
char wtgs[8+1]; //if wtgs<0 then is cancel
char wtjg[7+1];
}JY_WT, FAR *LPJY_WT;
typedef struct tag_PACK_ANS_WTCX
{
char flag;
char jys; //
char gddm[MAX_GDDM_SIZE+1]; //
short recnum;
char wtrq[MAX_RQ_SIZE+1]; //YYMMDD
LPJY_WT lpWt;
}JY_ANS_WTCX, FAR *LPJY_ANS_WTCX;
#define JY_CHKUSR 0
#define JY_CHGPWD 1
#define JY_BUYSELL 2
#define JY_CANCEL 3
#define JY_YECX 4
#define JY_CJCX 5
#define JY_WTCX 6
// defeine comm dbf file
#define fld_ASKNO 0
#define fld_ANSNO 1
#define fld_STKNO 2
#define fld_GDDM 3
#define fld_JYMM 4
#define fld_GPDM 5
#define fld_WTGS 6
#define fld_WTJG 7
#define fld_HTHM 8
#define fld_DATE 9
#define fld_STAT 10
#define REQ_NULL '0'
#define REQ_CHKUSR '1'
#define REQ_CHGPWD '2'
#define REQ_BUY '3'
#define REQ_SELL '4'
#define REQ_BUYSEL '3'
#define REQ_CANCEL '5'
#define REQ_YECX '6'
#define REQ_CJCX '7'
#define REQ_WTCX '8'
#define REQ_EXIT '9'
#define ANS_SUCC '0'
#define ANS_NO_MONEY '1'
#define ANS_NO_STOCK '2'
#define ANS_NOT_FOUND '3'
#define ANS_TIME_OUT '4'
#define ANS_SYS_ERR '5'
#define ANS_NO_PRIV '6'
#define ANS_NO_GDDM '7'
#define ANS_NO_CANCEL '8'
#define ANS_GDDM_USE 'I'
#define MAX_WAIT_TIME 20
int JyInit(void);
int JyExit(void);
int Jy_ChkUsr(int sd, struct sockaddr *, int, LPJY_ASK_CHKUSR);
int Jy_ChgPwd(int sd, struct sockaddr *, int, LPJY_ASK_CHGPWD);
int Jy_BuySell(int sd, struct sockaddr *, int, LPJY_ASK_BUYSELL);
int Jy_Cancel(int sd, struct sockaddr *, int, LPJY_ASK_CANCEL);
int Jy_Yecx(int sd, struct sockaddr *, int, LPJY_ASK_YECX);
int Jy_Cjcx(int sd, struct sockaddr *, int, LPJY_ASK_CJCX);
int Jy_Wtcx(int sd, struct sockaddr *, int, LPJY_ASK_WTCX);