亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? micq.h

?? 聊天程序
?? H
字號:
/*********************************************
**********************************************
Header file for ICQ protocol structres and
constants

This software is provided AS IS to be used in
whatever way you see fit and is placed in the
public domain.

Author : Matthew Smith April 19, 1998
Contributors : None yet

Changes :
   4-21-98 Increase the size of data associtated
            with the packets to enable longer messages. mds
   4-22-98 Added function prototypes and extern variables mds
   4-22-98 Added SRV_GO_AWAY code for bad passwords etc.
**********************************************
**********************************************/
#define MICQ_VERSION "0.3.0 Now with V4 support\t"

#include "datatype.h"
#include <stdlib.h>

/*********  Leeched from Xicq :) xtrophy@it.dk ********/
/*********  changed to use escape codes like you should :) ***/
/*********  changed colors ***********************************/
#ifdef ANSI_COLOR
/* Last 2 digit number selects the color */
/* Experiment and let me know if you come up with */
/* A better scheme */
   #define SERVCOL         "\x1B[0;31m"
   #define MESSCOL         "\x1B[1;34m"
   #define CONTACTCOL      "\x1B[1;35m"
   #define CLIENTCOL       "\x1B[0;32m"
   #define NOCOL           "\x1B[0m"
#else
   #define SERVCOL         ""
   #define MESSCOL         ""
   #define CONTACTCOL      ""
   #define CLIENTCOL       ""
   #define NOCOL           ""
#endif

#define SOUND_ON 1
#define SOUND_OFF 0
#define SOUND_CMD 2

#define ICQ_VER 0x0004

#define STDIN 0
#define STDOUT 1
#define STDERR 2

#if ICQ_VER == 0x0004

   typedef struct
   {
      BYTE dummy[2]; /* to fix alignment problem */
      BYTE ver[2];
      BYTE rand[2];
      BYTE zero[2];
      BYTE cmd[2];
      BYTE seq[2];
      BYTE seq2[2];
      BYTE  UIN[4];
      BYTE checkcode[4];
   } ICQ_pak, *ICQ_PAK_PTR;

   typedef struct
   {
      WORD dummy; /* to fix alignment problem */
      BYTE ver[2];
      BYTE cmd[2];
      BYTE seq[2];
      BYTE seq2[2];
      BYTE UIN[4];
      BYTE check[4];
   } SRV_ICQ_pak, *SRV_ICQ_PAK_PTR;

#else /* ICQ_VER */

   typedef struct
   {
      WORD dummy; /* to fix alignment problem */
      BYTE ver[2];
      BYTE cmd[2];
      BYTE seq[2];
      BYTE  UIN[4];
   } ICQ_pak, *ICQ_PAK_PTR;

   typedef struct
   {
      WORD dummy; /* to fix alignment problem */
      BYTE ver[2];
      BYTE cmd[2];
      BYTE seq[2];
   } SRV_ICQ_pak, *SRV_ICQ_PAK_PTR;

#endif  /* ICQ_VER */

typedef struct
{
   ICQ_pak  head;
   unsigned char  data[1024];
} net_icq_pak, *NET_ICQ_PTR;

typedef struct
{
   SRV_ICQ_pak  head;
   unsigned char  data[1024];
} srv_net_icq_pak, *SRV_NET_ICQ_PTR;

#define CMD_ACK            0x000A 
#define CMD_SENDM          0x010E
#define CMD_LOGIN          0x03E8
#define CMD_CONT_LIST      0x0406
#define CMD_SEARCH_UIN     0x041a
#define CMD_SEARCH_USER    0x0424
#define CMD_KEEP_ALIVE     0x042e
#define CMD_KEEP_ALIVE2    0x051e
#define CMD_SEND_TEXT_CODE 0x0438
#define CMD_LOGIN_1        0x044c
#define CMD_INFO_REQ       0x0460
#define CMD_EXT_INFO_REQ   0x046a
#define CMD_CHANGE_PW      0x049c
#define CMD_STATUS_CHANGE  0x04d8
#define CMD_LOGIN_2        0x0528
#define CMD_UPDATE_INFO    0x050A
#define CMD_UPDATE_EXT_INFO   0X04B0
#define CMD_ADD_TO_LIST    0X053C
#define CMD_REQ_ADD_LIST   0X0456
#define CMD_QUERY_SERVERS  0X04BA
#define CMD_QUERY_ADDONS   0X04C4
#define CMD_NEW_USER_1     0X04EC
#define CMD_NEW_USER_INFO  0X04A6
#define CMD_ACK_MESSAGES   0X0442
#define CMD_MSG_TO_NEW_USER   0x0456
#define CMD_REG_NEW_USER   0x3FC
#define CMD_VIS_LIST  0x06AE
#define CMD_INVIS_LIST  0x06A4

#define SRV_ACK            0x000A
#define SRV_LOGIN_REPLY    0x005A
#define SRV_USER_ONLINE    0x006E
#define SRV_USER_OFFLINE   0x0078
#define SRV_USER_FOUND     0x008C
#define SRV_RECV_MESSAGE   0x00DC
#define SRV_END_OF_SEARCH  0x00A0
#define SRV_INFO_REPLY     0x0118
#define SRV_EXT_INFO_REPLY 0x0122
#define SRV_STATUS_UPDATE  0x01A4
#define SRV_X1             0x021C
#define SRV_X2             0x00E6
#define SRV_UPDATE         0x01E0
#define SRV_UPDATE_EXT     0x00C8
#define SRV_NEW_UIN        0x0046
#define SRV_NEW_USER       0x00B4
#define SRV_QUERY          0x0082
#define SRV_SYSTEM_MESSAGE 0x01C2
#define SRV_SYS_DELIVERED_MESS 0x0104
#define SRV_GO_AWAY        0x00F0
#define SRV_BAD_PASS       0x0064
#define SRV_TRY_AGAIN      0x00FA
#define SRV_UPDATE_FAIL    0x01EA
#define SRV_UPDATE_SUCCESS 0x01E0
#define SRV_MULTI_PACKET   0x0212

#define STATUS_OFFLINE  (-1L)
#define STATUS_ONLINE  0x00
#define STATUS_INVISIBLE 0x100
#define STATUS_INVISIBLE_2 0x10
#define STATUS_NA      0x05
#define STATUS_FREE_CHAT 0x20
#define STATUS_OCCUPIED 0x11
#define STATUS_AWAY    0x01
#define STATUS_DND    0x13

#define AUTH_MESSAGE  0x0008

#define USER_ADDED_MESS 0x000C
#define AUTH_REQ_MESS 0x0006
#define URL_MESS	0x0004
#define MRURL_MESS	0x8004
#define NORM_MESS		0x0001
#define MRNORM_MESS	0x8001
#define CONTACT_MESS	0x0013
#define MRCONTACT_MESS	0x8013

/*#define USA_COUNTRY_CODE 0x01
#define UK_COUNTRY_CODE 0x2C*/
#if ICQ_VER == 0x0004

   typedef struct
   {
      BYTE time[4];
      BYTE port[4];
      BYTE len[2];
   } login_1, *LOGIN_1_PTR;

   typedef struct
   {
      BYTE X1[4];
      BYTE ip[4];
      BYTE  X2[1];
      BYTE  status[4];
      BYTE X3[4];
   /*   BYTE seq[2];*/
      BYTE  X4[4];
      BYTE X5[4];
   } login_2, *LOGIN_2_PTR;

   /* those behind the // are for the spec on
    http://www.student.nada.kth.se/~d95-mih/icq/
    they didn't work for me so I changed them
    to values that did work.
    *********************************/
   /*#define LOGIN_X1_DEF 0x00000078 */
   #define LOGIN_X1_DEF 0x00000098
/*   #define LOGIN_X2_DEF 0x04*/
   #define LOGIN_X2_DEF 0x06
   /*#define LOGIN_X3_DEF 0x00000002*/
   #define LOGIN_X3_DEF 0x00000003
   /*#define LOGIN_X4_DEF 0x00000000*/
   #define LOGIN_X4_DEF 0x00000000
   /*#define LOGIN_X5_DEF 0x00780008*/
   #define LOGIN_X5_DEF 0x00980000

#else /* ICQ_VER */

   typedef struct
   {
      BYTE port[4];
      BYTE len[2];
   } login_1, *LOGIN_1_PTR;

   typedef struct
   {
      BYTE X1[4];
      BYTE ip[4];
      BYTE  X2[1];
      BYTE  status[4];
      BYTE X3[4];
      BYTE seq[2];
      BYTE  X4[4];
      BYTE X5[4];
   } login_2, *LOGIN_2_PTR;

   /* those behind the // are for the spec on
    http://www.student.nada.kth.se/~d95-mih/icq/
    they didn't work for me so I changed them
    to values that did work.
    *********************************/
   /*#define LOGIN_X1_DEF 0x00000078 */
   #define LOGIN_X1_DEF 0x00040072
   #define LOGIN_X2_DEF 0x06
   /*#define LOGIN_X3_DEF 0x00000002*/
   #define LOGIN_X3_DEF 0x00000003
   /*#define LOGIN_X4_DEF 0x00000000*/
   #define LOGIN_X4_DEF 0x00000000
   /*#define LOGIN_X5_DEF 0x00780008*/
   #define LOGIN_X5_DEF 0x00720004

#endif /* ICQ_VER */

typedef struct
{
   BYTE   uin[4];
   BYTE year[2];
   BYTE  month;
   BYTE  day;
   BYTE  hour;
   BYTE  minute;
   BYTE type[2];
   BYTE len[2];
} RECV_MESSAGE, *RECV_MESSAGE_PTR;

typedef struct
{
   BYTE uin[4];
   BYTE type[2]; 
   BYTE len[2];
} SIMPLE_MESSAGE, *SIMPLE_MESSAGE_PTR;

typedef struct
{
   DWORD uin;
   DWORD status;
   DWORD last_time; /* last time online or when came online */
   BYTE current_ip[4];
   DWORD port;
   BOOL invis_list;
   BOOL vis_list;
   BOOL not_in_list;
   SOK_T sok;
   char nick[20];
} Contact_Member, *CONTACT_PTR;

typedef struct
{
   char *nick;
   char *first;
   char *last;
   char *email;
   BOOL auth;
} USER_INFO_STRUCT, *USER_INFO_PTR;

void Keep_Alive( int sok );
void snd_got_messages( int sok );
void snd_contact_list( int sok );
void snd_invis_list( int sok );
void snd_vis_list( int sok );
void snd_login_1( int sok );
void Status_Update( int sok, BYTE * pak );
void Login( int sok, int UIN, char *pass, int ip, int port, DWORD status );
void ack_srv( int sok, int seq );
void User_Offline( int sok, BYTE * pak );
int Save_RC();
void User_Online( int sok, BYTE * pak );
void M_fdprint( FD_T fd, char *str, ... );
int M_fdnreadln( FD_T fd, char *buf, size_t len );
char *Convert_Status_2_Str( int status );
void Print_Status( DWORD new_status );
void Get_Input( SOK_T sok );
void Quit_ICQ( SOK_T sok );
void icq_sendmsg( SOK_T sok, DWORD uin, char *text, DWORD msg_type);
void Recv_Message( SOK_T sok, BYTE * pak );
int Print_UIN_Name( DWORD uin );
void icq_change_status( SOK_T sok, DWORD status );
DWORD nick2uin( char * nick );
S_DWORD Echo_On( void );
S_DWORD Echo_Off( void );
void send_info_req( SOK_T sok, DWORD uin );
void Print_IP( DWORD uin );
void Display_Info_Reply( int sok, BYTE * pak );
WORD Chars_2_Word( unsigned char *buf );
DWORD Chars_2_DW( unsigned char *buf );
DWORD Get_Port( DWORD uin );
void Show_Quick_Status( void );
void icq_sendauthmsg( SOK_T sok, DWORD uin);
void Do_Msg( SOK_T sok, DWORD type, WORD len, char * data, DWORD uin );
void DW_2_Chars( unsigned char *buf, DWORD num );
void Word_2_Chars( unsigned char *buf, WORD num );
void Prompt( void );
void Time_Stamp( void );
void Add_User( SOK_T sok, DWORD uin, char *name );
void start_search( SOK_T sok, char *email, char *nick, char* first, char* last );
void Display_Search_Reply( int sok, BYTE * pak );
int log_event(char    *desc,char    *msg,DWORD   uin);
void rus_conv(char to[4],char *t_in);
void clrscr(void);
void reg_new_user( SOK_T sok, char *pass);
void send_ext_info_req( SOK_T sok, DWORD uin );
void Display_Ext_Info_Reply( int sok, BYTE * pak );
const char *Get_Country_Name( int code );
int Connect_Remote( char *hostname, int port, FD_T aux );
void Update_User_Info( SOK_T sok, USER_INFO_PTR user);
size_t SOCKWRITE( SOK_T sok, void * ptr, size_t len );
size_t SOCKREAD( SOK_T sok, void * ptr, size_t len );
void Hex_Dump( void *buffer, size_t len );
void icq_sendurl( SOK_T sok, DWORD uin, char *description, char *url );
void M_print( char *str, ... );
BOOL Server_Response( SOK_T sok, BYTE *data, DWORD len, WORD cmd, WORD ver, WORD seq, DWORD uin );
#ifdef UNIX 
void Get_Unix_Config_Info( void );
#endif

extern Contact_Member Contacts[ 100 ]; /* no more than 100 contacts max */
extern int Num_Contacts;
extern DWORD UIN; /* current User Id Number */
extern BOOL Contact_List;
extern WORD last_cmd[ 1024 ]; /* command issued for the first 1024 SEQ #'s */
/******************** should use & 0x3ff on all references to this */
extern WORD seq_num;  /* current sequence number */
extern DWORD our_ip;
extern DWORD our_port; /* the port to make tcp connections on */
extern BOOL Quit;
extern BOOL Verbose;
extern BYTE Sound;
extern DWORD Current_Status;
extern DWORD last_recv_uin;
//extern char passwd[100];
extern char *passwd;
extern char server[100];
extern DWORD remote_port;
extern DWORD set_status;
extern BOOL auto_resp;
extern char auto_rep_str_na[450];
extern char auto_rep_str_away[450];
extern char auto_rep_str_occ[450];
extern char auto_rep_str_inv[450];
extern char auto_rep_str_dnd[450];
extern BOOL Done_Login;
extern char message_cmd[16];
extern char info_cmd[16];
extern char quit_cmd[16];
extern char reply_cmd[16];
extern char again_cmd[16];
extern char add_cmd[16];

extern char list_cmd[16];
extern char away_cmd[16];
extern char na_cmd[16];
extern char dnd_cmd[16];
extern char online_cmd[16];
extern char occ_cmd[16];
extern char ffc_cmd[16];
extern char inv_cmd[16];
extern char status_cmd[16];
extern char auth_cmd[16];
extern char auto_cmd[16];
extern char search_cmd[16];
extern char save_cmd[16];
extern char change_cmd[16];
extern char alter_cmd[16];
extern char msga_cmd[16];
extern char url_cmd[16];
extern char update_cmd[16];

extern BOOL Russian;
extern BOOL Logging;
extern BOOL Color;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产婷婷国产香蕉| 精品中文字幕一区二区小辣椒| 26uuu久久天堂性欧美| 欧美精品自拍偷拍动漫精品| 欧美日韩亚洲综合一区 | 亚洲成av人片在www色猫咪| 亚洲九九爱视频| 亚洲一区二区三区影院| 亚洲小说春色综合另类电影| 亚洲午夜久久久久久久久电影网| 一区二区激情小说| 亚洲va在线va天堂| 日韩av不卡在线观看| 蜜桃视频一区二区| 国产福利一区二区三区在线视频| 成人av网在线| 91国产视频在线观看| 欧美日韩综合在线| 欧美一区二区久久| 日韩精品一区二区三区老鸭窝| 亚洲精品在线免费播放| 欧美—级在线免费片| 亚洲精品成人天堂一二三| 亚洲国产日韩av| 国产真实精品久久二三区| av在线不卡电影| 91精品国产麻豆国产自产在线| 精品成人a区在线观看| 亚洲国产精品成人综合| 亚洲国产欧美在线| 欧美一二三四在线| 日韩精品五月天| 国产精品亲子伦对白| 国产精品久久久久三级| 香蕉成人啪国产精品视频综合网| 久久精品99国产国产精| 成人一级片网址| 欧美亚洲国产一卡| 国产日韩欧美精品在线| 亚洲高清免费在线| 国产xxx精品视频大全| 91国产成人在线| 日韩欧美成人激情| 国产精品久久久久永久免费观看 | 激情小说欧美图片| 色综合婷婷久久| 久久亚洲春色中文字幕久久久| 亚洲美女电影在线| 国产乱色国产精品免费视频| 欧美日韩色一区| 国产精品毛片无遮挡高清| 奇米影视在线99精品| 91麻豆自制传媒国产之光| 久久久影视传媒| 首页综合国产亚洲丝袜| 99久久精品国产导航| 精品成人一区二区三区| 性做久久久久久久久| 99国产精品视频免费观看| 精品国产乱码久久久久久久| 视频一区欧美精品| 色噜噜狠狠一区二区三区果冻| 久久先锋影音av鲁色资源网| 午夜精品视频在线观看| 色综合久久综合中文综合网| 国产日韩欧美一区二区三区综合| 青青青爽久久午夜综合久久午夜| 欧美日韩视频在线一区二区| 一区二区三区在线播放| 不卡视频一二三| 欧美韩国日本一区| 国产传媒日韩欧美成人| 日韩欧美高清一区| 日韩va欧美va亚洲va久久| 欧美巨大另类极品videosbest| 亚洲自拍欧美精品| 在线精品视频免费播放| 亚洲精品免费一二三区| 色综合久久综合| 亚洲狠狠丁香婷婷综合久久久| 成人免费毛片a| 国产精品―色哟哟| av电影一区二区| 国产精品你懂的| 激情综合网天天干| 欧美极品美女视频| 99re66热这里只有精品3直播 | 日韩理论电影院| 成人综合婷婷国产精品久久蜜臀| 久久亚洲精华国产精华液| 国产精品原创巨作av| 国产精品三级在线观看| 一本到不卡免费一区二区| 亚洲黄色片在线观看| 欧美日韩国产不卡| 蜜桃久久精品一区二区| 国产亚洲欧美色| jlzzjlzz国产精品久久| 一区二区三区日本| 欧美一区二区三区四区高清 | 欧美一区二区视频在线观看| 日本伊人精品一区二区三区观看方式| 欧美剧情电影在线观看完整版免费励志电影| 午夜一区二区三区视频| 日韩久久久久久| av午夜精品一区二区三区| 亚洲午夜影视影院在线观看| 欧美videofree性高清杂交| 懂色av噜噜一区二区三区av| 亚洲精品高清在线观看| 欧美一区二区三区啪啪| 福利一区二区在线观看| 洋洋成人永久网站入口| 日韩精品一区二区在线| 99re视频这里只有精品| 日韩精品国产精品| 中文字幕二三区不卡| 7878成人国产在线观看| 福利视频网站一区二区三区| 亚洲国产aⅴ成人精品无吗| 精品黑人一区二区三区久久| 91视频观看免费| 麻豆精品视频在线观看免费| 日韩毛片在线免费观看| 日韩一区二区不卡| 色猫猫国产区一区二在线视频| 免费一区二区视频| 亚洲男同性恋视频| 久久美女艺术照精彩视频福利播放 | 国产不卡视频在线观看| 五月激情综合婷婷| 亚洲欧洲综合另类| 久久久国产午夜精品| 欧美日韩情趣电影| 99精品国产99久久久久久白柏| 精品中文av资源站在线观看| 亚洲一区电影777| 国产精品天干天干在观线| 精品日韩一区二区| 欧美三级资源在线| 色婷婷久久一区二区三区麻豆| 狠狠色伊人亚洲综合成人| 午夜精品久久久久久久99樱桃| 亚洲欧洲三级电影| 日本一区二区三区在线观看| 日韩欧美黄色影院| 欧美一区2区视频在线观看| 在线日韩av片| 91在线一区二区| 波多野结衣欧美| 国产精品亚洲一区二区三区妖精| 天天做天天摸天天爽国产一区| 亚洲乱码国产乱码精品精的特点 | 国产福利一区二区三区视频在线| 奇米亚洲午夜久久精品| 视频一区在线播放| 青青草原综合久久大伊人精品 | 日韩一级免费一区| 91麻豆精品国产91久久久久久久久| 色哟哟在线观看一区二区三区| 国产高清在线精品| 国产露脸91国语对白| 国内精品久久久久影院一蜜桃| 免费成人在线网站| 久久99国产精品久久| 日本vs亚洲vs韩国一区三区二区 | 亚洲成人av电影| 亚洲一区视频在线| 婷婷中文字幕一区三区| 午夜伦理一区二区| 热久久一区二区| 精品一区二区三区免费播放| 久久99精品久久久久久动态图 | 午夜精品久久久久久久久久久| 天涯成人国产亚洲精品一区av| 青青国产91久久久久久| 久久不见久久见免费视频7| 国产呦精品一区二区三区网站| 国产精品影音先锋| 97se亚洲国产综合自在线| 色老综合老女人久久久| 欧美电影一区二区三区| 欧美一区二区三区四区久久| 精品av久久707| 中文字幕一区av| 亚洲成人手机在线| 精品一区二区三区在线播放视频| 国产伦精一区二区三区| a亚洲天堂av| 欧美丰满一区二区免费视频| 精品少妇一区二区三区视频免付费| 日本一区二区三区四区在线视频| 亚洲另类春色国产| 免费日本视频一区| 成人国产电影网| 欧美剧在线免费观看网站| 亚洲精品在线三区| 一区二区三区在线视频观看| 美女网站在线免费欧美精品| 99久久婷婷国产综合精品电影|