ASP.NET發送ICQ訊息DIY
來源:互聯網
上載者:User
asp.net ASP.NET發送ICQ資訊DIY<br>
<br>
<br>
<br>
這裡我給大家提供一個很實用的例子,就是線上發送ICQ資訊。想一想我們在網頁上直接給朋友發送ICQ資訊,那是多麼美妙的事情啊。呵呵,在吹牛啊,其實ICQ本來就有線上發送的代碼,不過,這些都是AOL給你寫好的代碼,多沒有意思啊。還是自已寫的比較好,呵呵,廢話少說,大家來看代碼吧<br>
<br>
<% @ Page Language="C#" %><br>
<% @ Assembly Name="System.Net" %><br>
<% @ Import Namespace="System.Net" %><br>
<% @ Import Namespace="System.Net.Sockets" %><br>
<% @ Import Namespace="System.IO" %><br>
<% @ Import Namespace="System.Text" %><br>
<br>
<Script Language="C#" Runat="Server"><br>
public void Page_Load(Object src,EventArgs e)<br>
{<br>
ICQ_Show.Text="如果提交後,在這裡顯示資訊"; <br>
}<br>
<br>
public void Send_Click(Object sender,EventArgs e)<br>
{<br>
string sendmsg;<br>
string commandmsg;<br>
file://首先取得要發送的資訊<br>
commandmsg = "from="+ICQ_Name.Text+"&fromemail="+ICQ_Email.Text+"&subject="; <br>
commandmsg += ICQ_Subject.Text+"&body="+ICQ_Message.Text+"&to="+ICQ_Number.Text <br>
commandmsg += "&Send=Send+Message";<br>
file://然後就是組裝全部的資訊<br>
sendmsg="POST /scripts/WWPMsg.dll HTTP/1.1\r\n";<br>
sendmsg += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,";<br>
sendmsg += " application/vnd.ms-excel,";<br>
sendmsg += " application/msword, application/vnd.ms-powerpoint, */*\r\n";<br>
sendmsg += "Accept-Language: zh-cn\r\n";<br>
sendmsg += "Content-Type: application/x-www-form-urlencoded\r\n";<br>
sendmsg += "Accept-Encoding: gzip, deflate\r\n";<br>
sendmsg += "User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)\r\n";<br>
sendmsg += "Host: wwp.icq.com\r\n";<br>
sendmsg += "Content-Length: " + commandmsg.Length + "\r\n";<br>
sendmsg += "Connection: Keep-Alive\r\n\r\n";<br>
sendmsg += commandmsg + "\r\n\r\n";<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("wwp.icq.com",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("OK")!=-1)<br>
{<br>
ICQ_Show.Text="ICQ訊息發送成功";<br>
}<br>
else<br>
{<br>
ICQ_Show.Text="ICQ訊息發送不成功";<br>
}<br>
<br>
}<br>
else<br>
{<br>
ICQ_Show.Text="ICQ訊息發送不成功,無法連接ICQ伺服器";<br>
}<br>
file://關閉TCP連接<br>
tcpc.Close();<br>
}<br>
<br>
</script><br>
<html><br>
<meta http-equiv="Content-Language" content="zh-cn"><br>
<head><br>
<title></title><br>
</head><br>
<body><br>
<form runat="server" ><br>
<table><br>
<tr><td align=center colspan=2><br>
<asp:Label id="ICQ_Show" runat="server" ForeColor="red" /></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="ICQ_Number" runat="server" /></td></tr><br>
<tr><td>您的網名:</td><td><asp:TextBox id="ICQ_Name" runat="server" /></td></tr><br>
<tr><td>您的Email:</td><td><asp:TextBox id="ICQ_Email" runat="server" /></td></tr><br>
<tr><td>發送主題:</td><td><asp:TextBox id="ICQ_Subject" runat="server" /></td></tr><br>
<tr><td>發送內容:</td><td><asp:TextBox id="ICQ_Message" runat="server" /></td></tr><br>
<tr><td><asp:Button OnClick="Send_Click" Text="發送ICQ資訊" RunAt="server" /></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>
按下"發送ICQ資訊"鍵後的顯示是:<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>