⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datagramhandler.java

📁 这是非常简单的例子
💻 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 + -