易截截图软件、单文件、免安装、纯绿色、仅160KB

C# Delphi处理分析QQ协议


C# Delphi处理分析QQ协议
 
 
 大家说到QQ协议都觉得很神秘,是因为QQ不像MSN或者ICQ协议都已经官方公布了,而QQ的没有公布。研究它的人也不是特别的多,虽然已经有了基于 QQ协议所写成的第三方软件 foicq, qq plugins for gaim, LumaQQ,但是由于他们是基于二进制Stream的协议过于复杂,大家阅读代码也有一定的难度,再加上网络上解析QQ协议的文章也不是十分多,所以基于QQ网络协议的应用程序也是寥寥无几的。现在我就把基于HTTP的QQ协议进行一个粗浅的剖析,希望对大家有所帮助。源码部分就用我喜欢的DELPHI 和现在比较流行的C#语言对QQ协议的实现进行具体分析。
  1、找寻支持QQ HTTP协议的服务器。
  大家也许会被一些假像所迷惑,也许会认为QQ的HTTP服务器是基于80口进行通信的(如:218.17.209.23:80),其实不然,正真基于HTTP的服务器应该是:http://tqq.tencent.com:8000,它是一个通过8000口进行通讯的服务器。
  由于QQ的HTTP服务器并不支持HTTP协议中GET方法,它支持POST方法。所以我们要给QQ的HTTP协议传参数,那么就必需要用POST方式才行。
  2、C#和DELPHI是实现HTTP的POST方法的通信。
  C#:
  C#里System.Web空间下提供了一个叫做WebClient的对象,使用此对象就可以使C#直接对服务器发送WEB客户端的请求。那么我们要对服务器提交POST方法那么就必须使用其UploadData()方法才行。首先把要请求的信息先转换为字节(因为POST提交的是字符的流数据),然后再做为UploadData()的参数。使用UploadData()进行数据提交,最后返回,POST的回馈信息。如下:
 WebClient _client = new WebClient();
  string postValues = "VER=1.0&CMD=Query_Stat&SEQ=12321&UIN=29501213&TN=50&UN=0";
  Byte[] byteArray = System.Text.Encoding.ASCII.GetBytes(postValues);
  Byte[] pageData = _client.UploadData(Host,"POST",byteArray);
  这样,我们就利用C#进行了一次HTTP的POST方法提交了。
  DELPHI:
  Delphi里我们利用一个比较流行的第三方VCL,INDY HTTP(这个组件D6,D7里面自带)进行HTTP通信。使用其的POST方法便可以进行HTTP的POST通信,因为组件比较好用,我就不在其描述具体的过程了。大家可以参考以下代码:
 
 function PostWebPage(url,para:String;TimeOut:Integer):String;


相关文档:

C# C/S模式下实现软件自动在线升级

1 前言 
 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时 ......

ArcSDE C APi的C#调用

选两个比较有代表性的函数
首先下载安装sdk,将其中的sde.dll,pe.dll和sg.dll拷贝过来
使用如下的代码,指定dll后直接调用其中的函数,
/// <summary>
/// Sets the value for a small integer column.
/// </summary>
[DllImport(".\\sde91.dll", SetLastError = true, ......

Delphi 中Md5获取(Indy 9)







在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的
DLL或是Pas了。
在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。
示例代码
procedure TForm1.Button1Click(Sen ......

操作XML,对XML的增删改查操作。asp.net C#

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
namespace jiu ......

asp.net (c#)控件大全

DataGridView 控件DataGridView 控件提供用来显示数据的可自定义表。使用 DataGridView 类,可以自定义单元格、行、列和边框。
注意
DataGridView 控件提供 DataGrid 控件所不具备的许多基本和高级功能。有关更多信息,请参见 Windows 窗体 DataGridView 控件和
DataGrid 控件之间的区别
常用属性:
DefaultCellStyle、 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号