qq秒源码
Ⅰ 如何用c语言编写QQ聊天程序(源代码)
1、首先,我们编写C语言的头文件#include <stdio.h>。
Ⅱ 怎么获得QQ源代码
</b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b>return
(unsigned
char
*)
send_im_tail;
}
//
处理普通的
QQ
消息
void
MyQQ::qq_process_recv_normal_im(unsigned
char
*
data,
unsigned
char
**
cur
sor,
int
len)
{
int
bytes;
qq_recv_normal_im_common
*common;
qq_recv_normal_im_unprocessed
*im_unprocessed;
if
(*cursor
>=
(data
+
len
-
1))
{
return;
}
else
common
=
(qq_recv_normal_im_common
*)malloc(sizeof(qq_recv_normal_im_commo
n));
bytes
=
qq_normal_im_common_read(data,
cursor,
len,
common);
if
(bytes
<
0)
{
return;
}
switch
(common->normal_im_type)
{
case
QQ_NORMAL_IM_TEXT:
qq_process_recv_normal_im_text
(data,
cursor,
len,
common);
break;
case
QQ_NORMAL_IM_FILE_REJECT_UDP:
//qq_process_recv_file_reject
(data,
cursor,
len,
</b></b>//
common->sender_uid,
gc);
break;
case
QQ_NORMAL_IM_FILE_APPROVE_UDP:
//qq_process_recv_file_accept
(data,
cursor,
len,
//
common->sender_uid,
gc);
break;
case
QQ_NORMAL_IM_FILE_REQUEST:
//qq_process_recv_file_request
(data,
cursor,
len,
//
common->sender_uid,
gc);
break;
case
QQ_NORMAL_IM_FILE_CANCEL:
//qq_process_recv_file_cancel
(data,
cursor,
len,
//
common->sender_uid,
gc);
break;
case
QQ_NORMAL_IM_FILE_NOTIFY:
//qq_process_recv_file_notify
(data,
cursor,
len,
//
common->sender_uid,
gc);
break;
default:
return;
}
//
normal_im_type
g_free
(common->session_md5);
}
void
MyQQ::qq_process_recv_normal_im_text(unsigned
char
*
data,
unsigned
char
**
cursor,
int
len,
qq_recv_normal_im_common
*
common)
{
short
gaim_msg_type;
</b></b>char
*name;
char
*msg_with_gaim_smiley;
char
*msg_utf8_encoded;
qq_recv_normal_im_text
*im_text;
if
(*cursor
>=
(data
+
len
-
1))
{
return;
}
else
im_text
=
(qq_recv_normal_im_text
*)malloc(sizeof(qq_recv_normal_im_text));
im_text->common
=
common;
read_packet_w(data,
cursor,
len,
&(im_text->msg_seq));
read_packet_dw(data,
cursor,
len,
&(im_text->send_time));
read_packet_b(data,
cursor,
len,
&(im_text->unknown1));
read_packet_b(data,
cursor,
len,
&(im_text->sender_icon));
read_packet_data(data,
cursor,
len,
(unsigned
char
*)
&
(im_text->unknown2),
3);
read_packet_b(data,
cursor,
len,
&(im_text->is_there_font_attr));
read_packet_data(data,
cursor,
len,
(unsigned
char
*)
&
(im_text->unknown3),
4);
read_packet_b(data,
cursor,
len,
&(im_text->msg_type));
if
(im_text->msg_type
==
QQ_IM_AUTO_REPLY)
{
im_text->is_there_font_attr
=
0x00;
im_text->msg
=
(unsigned
char
*)malloc(1024);
memcpy(im_text->msg,*cursor,
data
+
len
-
*cursor);
}
else
{
if
(im_text->is_there_font_attr)
{
im_text->msg
=
(unsigned
char
*)malloc(1500);
memcpy(im_text->msg,*cursor,
strlen((const
char
*)*cursor));
</b></b>im_text->msg[strlen((const
char
*)*cursor)]
=
0;
}
else
{
im_text->msg
=
(unsigned
char
*)malloc(1024);
memcpy(im_text->msg,*cursor,
data
+
len
-
*cursor);
im_text->msg[data
+
len
-
*cursor]
=
0;
}
}
MessageText
=
im_text->msg;
//
如果需要自动回复
if(Status
==
3)
{
//I_QQAutoReply()
函数获取预先设置的自动回复消息内容,需自己实现
char*
MText
=
I_QQAutoReply();
QQSendTextMessage(common->sender_uid,MText,0x01);
}
//
在主界面中显示消息
//I_QQReceiveMessage((char
*)MessageText,common->sender_uid);
}
int
MyQQ::qq_normal_im_common_read(unsigned
char
*
data,
unsigned
char
**
curs
or,
int
len,
qq_recv_normal_im_common
*
common)
{
int
bytes;
bytes
=
0;
</b></b>
bytes
+=
read_packet_w(data,
cursor,
len,
&(common->sender_ver));
bytes
+=
read_packet_dw(data,
cursor,
len,
&(common->sender_uid));
bytes
+=
read_packet_dw(data,
cursor,
len,
&(common->receiver_uid));
common->session_md5
=
(unsigned
char
*)malloc(QQ_KEY_LENGTH);
memcpy(common->session_md5,*cursor,
QQ_KEY_LENGTH);
bytes
+=
QQ_KEY_LENGTH;
*cursor
+=
QQ_KEY_LENGTH;
bytes
+=
read_packet_w(data,
cursor,
len,
&(common->normal_im_type));
if
(bytes
!=
28)
{
return
-1;
}
return
bytes;
}
Ⅲ 怎么样获取qq源代码
进入要慎烂毁查看的代码网站,在有空位的地方点击宽备鼠标右键,然后点击查看源代码历粗。点击查看源代码后,就会显示出这个网站的代码。