ASP.NET发送ICQ消息DIY

发表于:2007-06-30来源:作者:点击数: 标签:
ASP.NET发送ICQ信息DIYbr br br br 这里我给大家提供一个很实用的例子,就是在线发送ICQ信息。想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情
ASP.NET发送ICQ信息DIY<br>
<br>
<br>
<br>
  这里我给大家提供一个很实用的例子,就是在线发送ICQ信息。想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊。呵呵,在吹牛啊,其实ICQ本来就有在线发送的代码,不过,这些都是AOL给你写好的代码,多没有意思啊。还是自已写的比较好,呵呵,废话少说,大家来看代码吧<br>
<br>
<% @ Page Language=&quot;C#&quot; %><br>
<% @ Assembly Name=&quot;System.Net&quot; %><br>
<% @ Import Namespace=&quot;System.Net&quot; %><br>
<% @ Import Namespace=&quot;System.Net.Sockets&quot; %><br>
<% @ Import Namespace=&quot;System.IO&quot; %><br>
<% @ Import Namespace=&quot;System.Text&quot; %><br>
<br>
<Script Language=&quot;C#&quot; Runat=&quot;Server&quot;><br>
public void Page_Load(Object src,EventArgs e)<br>
{<br>
ICQ_Show.Text=&quot;如果提交后,在这里显示信息&quot;; <br>
}<br>
<br>
public void Send_Click(Object sender,EventArgs e)<br>
{<br>
string sendmsg;<br>
string commandmsg;<br>
file://首先取得要发送的信息<br>
commandmsg = &quot;from=&quot;+ICQ_Name.Text+&quot;&fromemail=&quot;+ICQ_Email.Text+&quot;&subject=&quot;; <br>
commandmsg += ICQ_Subject.Text+&quot;&body=&quot;+ICQ_Message.Text+&quot;&to=&quot;+ICQ_Number.Text <br>
commandmsg += &quot;&Send=Send+Message&quot;;<br>
file://然后就是组装全部的信息<br>
sendmsg=&quot;POST /scripts/WWPMsg.dll HTTP/1.1\r\n&quot;;<br>
sendmsg += &quot;Aclearcase/" target="_blank" >ccept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,&quot;;<br>
sendmsg += &quot; application/vnd.ms-excel,&quot;;<br>
sendmsg += &quot; application/msword, application/vnd.ms-powerpoint, */*\r\n&quot;;<br>
sendmsg += &quot;Accept-Language: zh-cn\r\n&quot;;<br>
sendmsg += &quot;Content-Type: application/x-www-form-urlencoded\r\n&quot;;<br>
sendmsg += &quot;Accept-Encoding: gzip, deflate\r\n&quot;;<br>
sendmsg += &quot;User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)\r\n&quot;;<br>
sendmsg += &quot;Host: wwp.icq.com\r\n&quot;;<br>
sendmsg += &quot;Content-Length: &quot; + commandmsg.Length + &quot;\r\n&quot;;<br>
sendmsg += &quot;Connection: Keep-Alive\r\n\r\n&quot;;<br>
sendmsg += commandmsg + &quot;\r\n\r\n&quot;;<br>
<br>
Byte[] arrMsg=Encoding.Default.GetBytes(sendmsg.ToCharArray());<br>
file://需要发送的信息处理完毕<br>
<br>
file://======下面就是发送这些信息=====<br>
file://首先是建立一个TCPClient 对象<br>
TCPClient tcpc=new TCPClient();<br>
if(0==tcpc.Connect(&quot;wwp.icq.com&quot;,80))<br>
{<br>
Stream sm = tcpc.GetStream();<br>
sm.Write(arrMsg,0,sendmsg.Length);<br>
StreamReader sr=new StreamReader(tcpc.GetStream(),Encoding.Default);<br>
string strRev=sr.ReadLine();<br>
if(strRev.IndexOf(&quot;OK&quot;)!=-1)<br>
{<br>
ICQ_Show.Text=&quot;ICQ消息发送成功&quot;;<br>
}<br>
else<br>
{<br>
ICQ_Show.Text=&quot;ICQ消息发送不成功&quot;;<br>
}<br>
<br>
}<br>
else<br>
{<br>
ICQ_Show.Text=&quot;ICQ消息发送不成功,无法联结ICQ服务器&quot;;<br>
}<br>
file://关闭TCP联结<br>
tcpc.Close();<br>
}<br>
<br>
</script><br>
<html><br>
<meta http-equiv=&quot;Content-Language&quot; content=&quot;zh-cn&quot;><br>
<head><br>
<title></title><br>
</head><br>
<body><br>
<form runat=&quot;server&quot; ><br>
<table><br>
<tr><td align=center colspan=2><br>
<asp:Label id=&quot;ICQ_Show&quot; runat=&quot;server&quot; ForeColor=&quot;red&quot; /></td></tr><br>
<tr><td><br></tr><br>
<tr><td align=center colspan=2>发送ICQ信息</td></tr><br>
<tr><td>您的ICQ号:</td><td><asp:TextBox id=&quot;ICQ_Number&quot; runat=&quot;server&quot; /></td></tr><br>
<tr><td>您的网名:</td><td><asp:TextBox id=&quot;ICQ_Name&quot; runat=&quot;server&quot; /></td></tr><br>
<tr><td>您的Email:</td><td><asp:TextBox id=&quot;ICQ_Email&quot; runat=&quot;server&quot; /></td></tr><br>
<tr><td>发送主题:</td><td><asp:TextBox id=&quot;ICQ_Subject&quot; runat=&quot;server&quot; /></td></tr><br>
<tr><td>发送内容:</td><td><asp:TextBox id=&quot;ICQ_Message&quot; runat=&quot;server&quot; /></td></tr><br>
<tr><td><asp:Button OnClick=&quot;Send_Click&quot; Text=&quot;发送ICQ信息&quot; RunAt=&quot;server&quot; /></td></tr><br>
</table><br>
</form><br>
<br>
</body><br>
</html><br>
<br>
  开始显示是这个样子:<br>
<br>
    如果提交后,在这里显示信息 <br>
<br>
      发送ICQ信息 <br>
您的ICQ号:  <br>
您的网名:   <br>
您的Email:  <br>
发送主题:   <br>
发送内容:   <br>
<br>
按下&quot;发送ICQ信息&quot;键后的显示是:<br>
<br>
    ICQ消息发送成功 <br>
<br>
<br>
      发送ICQ信息 <br>
  您的ICQ号:  <br>
  您的网名:   <br>
  您的Email:  <br>
  发送主题:   <br>
  发送内容:   <br>
<br>
  相信大家能看懂上面的程序,我已经加了注释,应当没有问题吧。呵呵。其实这个程序也不过是在走AOL在线代码的老路,只是写了个程序模拟了POST方法。不过这个已经足够了,我们写程序时也就不必为那个POST如表示来烦人了。<br>
<br>
  有了ICQ信息,肯定不少朋友会问到OICQ,毕竟在国内OICQ是老大。但是很不幸,腾讯公司并没有给我们提供接口,我写信去问,他们告诉我没有提供,其实我也搞到一个,是通过WAP方式搞到的。但是这个不太好,只能是向腾讯公司发通知的那种形式出现,很不好玩,而且还必须网友在线才能收到,太没有意思了。本来也想通过UDP直接来写,但是实在不知道,这个数据包中要填些什么东东去验证,所以也没有办法,如果哪位朋友知道,请您写信给我,我也在waiting着啊。<br>
<br>
  关于这个发ICQ信息的例子示范,我把它放在 http://aspx1.brinkster.com/feidao/code/Qicq.aspx 上了,大家有兴趣去看一下,呵呵。<br>
<br>

原文转自:http://www.ltesting.net