📄 datagramhandler.java
字号:
/*///////////////////////////////////////////////////////////////////////////////
//文档生成日期:2005.11.3
//
//(1)概述:
//类名称:PushSMSLisnter
//类说明:
// This code handles inbound datagram connections in response to a pushed datagram connection。
//所在子系统:MIMESMSnotifyPushRegistry
//
//系统总描述:
本工程发送一个MIME头的短信给目标手机。MIME头中指明了对方应该如何处理。
对方手机收到后,触发注册了PushRegistry的MIDlet应用,并解析短信,
按照指明的命令操作。
子系统描述:
注册Push Registry,监听sms://:8341,当然端口可以修改的。
这样,收到带有MIME头的短信后,解析并按照命令行事.
//(2)历史记录:
//创建人: David Hemphill
//(3)版权声明:
//我这个版本的MIMESMSnotifyPushRegistry,
//j2me客户端代码仅仅允许您借鉴,但不得用于商业用途,除非得到郑昀本人的授权。本人保留所有权利。
////////////////////////////////////////////////////////////////////*/
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -