用ASP.Net写一个发送ICQ信息的程序

这里我给大家提供一个很实用的例子,就是在线发送ICQ信息。想一想我们在网页上直接给朋友发送ICQ信息,那是多么美妙的事情啊。呵呵,在吹牛啊,其实ICQ本来就有在线发送的代码,不过,这些都是AOL给你写好的代码,多没有意思啊。还是自已写的比较好,呵呵,废话少说,大家来看代码吧

1<br/>
1<br/>
1 @ Page Language="C#" 
1<br/>
1 @ Assembly Name="System.Net" 
1<br/>
1 @ Import Namespace="System.Net" 
1<br/>
1 @ Import Namespace="System.Net.Sockets" 
1<br/>
1 @ Import Namespace="System.IO" 
1<br/>
1 @ Import Namespace="System.Text" 
1<br/>
1<br/>
 1<script language="C#" runat="Server"> <br>   
 2public void Page_Load(Object src,EventArgs e) <br>   
 3{ <br>   
 4ICQ_Show.Text="如果提交后,在这里显示信息"; <br>   
 5} <br>   
 6<br>   
 7public void Send_Click(Object sender,EventArgs e) <br>   
 8{ <br>   
 9string sendmsg; <br>   
10string commandmsg; <br>   
11//首先取得要发送的信息 <br>   
12commandmsg = "from="+ICQ_Name.Text+"&fromemail="+ICQ_Email.Text+"&subject="; <br>   
13commandmsg += ICQ_Subject.Text+"&body="+ICQ_Message.Text+"&to="+ICQ_Number.Text <br>   
14commandmsg += "&Send=Send+Message"; <br>   
15//然后就是组装全部的信息 <br>   
16sendmsg="POST /scripts/WWPMsg.dll HTTP/1.1\r\n"; <br>   
17sendmsg += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,"; <br>   
18sendmsg += " application/vnd.ms-excel,"; <br>   
19sendmsg += " application/msword, application/vnd.ms-powerpoint, */*\r\n"; <br>   
20sendmsg += "Accept-Language: zh-cn\r\n"; <br>   
21sendmsg += "Content-Type: application/x-www-form-urlencoded\r\n"; <br>   
22sendmsg += "Accept-Encoding: gzip, deflate\r\n"; <br>   
23sendmsg += "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)\r\n"; <br>   
24sendmsg += "Host: wwp.icq.com\r\n"; <br>   
25sendmsg += "Content-Length: " + commandmsg.Length + "\r\n"; <br>   
26sendmsg += "Connection: Keep-Alive\r\n\r\n"; <br>   
27sendmsg += commandmsg + "\r\n\r\n"; <br>   
28<br>   
29Byte[] arrMsg=Encoding.Default.GetBytes(sendmsg.ToCharArray()); <br>   
30//需要发送的信息处理完毕 <br>   
31<br>   
32//======下面就是发送这些信息===== <br>   
33//首先是建立一个TCPClient 对象 <br>   
34TCPClient tcpc=new TCPClient(); <br>   
35if(0==tcpc.Connect("wwp.icq.com",80)) <br>   
36{ <br>   
37Stream sm = tcpc.GetStream(); <br>   
38sm.Write(arrMsg,0,sendmsg.Length); <br>   
39StreamReader sr=new StreamReader(tcpc.GetStream(),Encoding.Default); <br>   
40string strRev=sr.ReadLine(); <br>   
41if(strRev.IndexOf("OK")!=-1) <br>   
42{ <br>   
43ICQ_Show.Text="ICQ消息发送成功"; <br>   
44} <br>   
45else <br>   
46{ <br>   
47ICQ_Show.Text="ICQ消息发送不成功"; <br>   
48} <br>   
49<br>   
50} <br>   
51else <br>   
52{ <br>   
53ICQ_Show.Text="ICQ消息发送不成功,无法联结ICQ服务器"; <br>   
54} <br>   
55//关闭TCP联结 <br>   
56tcpc.Close(); <br>   
57} <br>   
58<br>   
59</script>
1<br/>
 1<html> <br/>
 2<meta content="zh-cn" http-equiv="Content-Language"/> <br/>
 3<head> <br/>
 4<title></title> <br/>
 5</head> <br/>
 6<body> <br/>
 7<form runat="server"> <br/>
 8<table> <br/>
 9<tr><td align="center" colspan="2"> <br/>
10<asp:label forecolor="red" id="ICQ_Show" runat="server"></asp:label></td></tr> <br/>
11<tr><td><br/></td></tr> <br/>
12<tr><td align="center" colspan="2">发送ICQ信息</td></tr> <br/>
13<tr><td>您的ICQ号:</td><td><asp:textbox id="ICQ_Number" runat="server"></asp:textbox></td></tr> <br/>
14<tr><td>您的网名:</td><td><asp:textbox id="ICQ_Name" runat="server"></asp:textbox></td></tr> <br/>
15<tr><td>您的Email:</td><td><asp:textbox id="ICQ_Email" runat="server"></asp:textbox></td></tr> <br/>
16<tr><td>发送主题:</td><td><asp:textbox id="ICQ_Subject" runat="server"></asp:textbox></td></tr> <br/>
17<tr><td>发送内容:</td><td><asp:textbox id="ICQ_Message" runat="server"></asp:textbox></td></tr> <br/>
18<tr><td><asp:button onclick="Send_Click" runat="server" text="发送ICQ信息"></asp:button></td></tr> <br/>
19</table> <br/>
20</form> <br/>
21<br/>
22<br/>
23</body> <br/>
24</html>
1<br/>
1<br/>
1<br/>

开始显示是这个样子:

1<br/>
1<br/>

如果提交后,在这里显示信息

1<br/>
1<br/>
1<br/>

发送ICQ信息

1<br/>

您的ICQ号:

1<br/>

您的网名:

1<br/>

您的Email:

1<br/>

发送主题:

1<br/>

发送内容:

1<br/>
1<br/>
1<br/>
1<br/>

按下"发送ICQ信息"键后的显示是:

1<br/>
1<br/>

ICQ消息发送成功

1<br/>
1<br/>
1<br/>

发送ICQ信息

1<br/>

您的ICQ号:

1<br/>

您的网名:

1<br/>

您的Email:

1<br/>

发送主题:

1<br/>

发送内容:

1<br/>
1<br/>
1<br/>
1<br/>

相信大家能看懂上面的程序,我已经加了注释,应当没有问题吧。呵呵。其实这个程序也不过是在走AOL在线代码的老路,只是写了个程序模拟了POST方法。不过这个已经足够了,我们写程序时也就不必为那个POST如表示来烦人了。

1<br/>
1<br/>

有了ICQ信息,肯定不少朋友会问到OICQ,毕竟在国内OICQ是老大。但是很不幸,腾讯公司并没有给我们提供接口,我写信去问,他们告诉我没有提供,其实我也搞到一个,是通过WAP方式搞到的。但是这个不太好,只能是向腾讯公司发通知的那种形式出现,很不好玩,而且还必须网友在线才能收到,太没有意思了。本来也想通过UDP直接来写,但是实在不知道,这个数据包中要填些什么东东去验证,所以也没有办法,如果哪位朋友知道,请您写信给我,我也在waiting着啊。

1<br/>
1<br/>

关于这个发ICQ信息的例子示范,我把它放在 http://aspx1.brinkster.com/feidao/code/Qicq.aspx 上了,大家有兴趣去看一下,呵呵。

1<br/>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus