?? datagramhandler.java
字號:
/*///////////////////////////////////////////////////////////////////////////////
//文檔生成日期:2005.11.3
//
//(1)概述:
//類名稱:PushSMSLisnter
//類說明:
// This code handles inbound datagram connections in response to a pushed datagram connection。
//所在子系統(tǒng):MIMESMSnotifyPushRegistry
//
//系統(tǒng)總描述:
本工程發(fā)送一個(gè)MIME頭的短信給目標(biāo)手機(jī)。MIME頭中指明了對方應(yīng)該如何處理。
對方手機(jī)收到后,觸發(fā)注冊了PushRegistry的MIDlet應(yīng)用,并解析短信,
按照指明的命令操作。
子系統(tǒng)描述:
注冊Push Registry,監(jiān)聽sms://:8341,當(dāng)然端口可以修改的。
這樣,收到帶有MIME頭的短信后,解析并按照命令行事.
//(2)歷史記錄:
//創(chuàng)建人: David Hemphill
//(3)版權(quán)聲明:
//我這個(gè)版本的MIMESMSnotifyPushRegistry,
//j2me客戶端代碼僅僅允許您借鑒,但不得用于商業(yè)用途,除非得到鄭昀本人的授權(quán)。本人保留所有權(quán)利。
////////////////////////////////////////////////////////////////////*/
package com.ultrapower.handler;
import java.io.IOException;
import java.io.InterruptedIOException;
import javax.microedition.io.Connector;
import javax.microedition.io.DatagramConnection;
import javax.microedition.lcdui.StringItem;
import javax.wireless.messaging.Message;
import javax.wireless.messaging.MessageConnection;
import javax.wireless.messaging.TextMessage;
import com.ultrapower.midlet.PushSMSListner;
/**********************************************************
//PushSMSLisnter
//
//Class Description:
// This code handles inbound datagram connections in response to a pushed datagram connection。
//Author:
// David Hemphill
//
**********************************************************/
public class DatagramHandler extends Thread{
private DatagramConnection dgc;
private PushSMSListner m_midlet;
private boolean m_bRunMe = true;
private int m_nAppendStringItemId = -1;
public void stopHandler()
{
m_bRunMe = false;
}
public DatagramHandler(String c, PushSMSListner midlet){
try {
dgc = (DatagramConnection)Connector.open(c);
} catch (IOException x){
x.printStackTrace();
}
m_midlet = midlet;
}
public void run(){
while (m_bRunMe){
String sMsg =
receiveMessage();
if(m_nAppendStringItemId == -1)
{
m_nAppendStringItemId =
m_midlet.mainForm.append(new StringItem("消息正文:", sMsg));
}
else
{
m_midlet.mainForm.set(m_nAppendStringItemId, new StringItem("消息正文:", sMsg));
}
System.out.println("收到了消息:" + sMsg);
}
}
private synchronized String receiveMessage() {
MessageConnection conn = null;
Message msg = null;
String text = null;
try
{
conn = ( MessageConnection)Connector.open("sms://:8341" );
msg = conn.receive();
if( msg != null && msg instanceof TextMessage )
{
text = ((TextMessage)msg).getPayloadText();
}
}
catch (InterruptedIOException ignore)
{
System.out.println("Done listening");
}
catch (IOException x) {
x.printStackTrace();
}
return text;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -