当前位置:  编程技术>移动开发
本页文章导读:
    ▪邮件发送,临时只测试了QQ邮箱        邮件发送,暂时只测试了QQ邮箱 import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProvide.........
    ▪ SurfaceView跟View最本质的区别        SurfaceView和View最本质的区别 SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。那么在UI的主线程中更新画面 可能.........
    ▪ ipv4 ipv6 原理与怎么使用       ipv4 ipv6 原理与如何使用 ipv6是ipv4的升级版 它拥有更多的IP地址   一: IPv4地址也时常以一组4个2位的十六进制整数或4个8位的二进制整数表示,但后一种情况较少见。 4×8 = 32    201.199.244.101.........

[1]邮件发送,临时只测试了QQ邮箱
    来源: 互联网  发布时间: 2014-02-18
邮件发送,暂时只测试了QQ邮箱
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 发送普通邮件,接受普通邮件 发送带有附件的邮件,接收带有附件的邮件 发送html形式的邮件,接受html形式的邮件 发送带有图片的邮件等做了一个总结。
 */
public class Test {
	 static int port=25;
	 static String server="smtp.qq.com";
	 static String from="****@qq.com";
	 static String user="****";
	 static String password="******";
	 
	 public static void main(String[] args)
	 {
		 sendEmail("***@foxmail.com", "test", "test");
	 }
	 
	 public static void sendEmail(String email,String subject,String body){
	  try{
	   Properties props=new Properties();   
	   props.put("mail.smtp.host",server);
	   props.put("mail.smtp.port",String.valueOf(port));
	   props.put("mail.smtp.auth","true");//验证
	   Transport transport=null;
	   MyAuthenticator myauth = new MyAuthenticator(from, password);
	   Session session=Session.getDefaultInstance(props,myauth);
	   session.setDebug(true);
	   transport=session.getTransport("smtp");
	   transport.connect(server,user,password);
	   MimeMessage msg=new MimeMessage(session);
	   msg.setSentDate(new Date());
	   InternetAddress fromAddress=new InternetAddress(from);
	   msg.setFrom(fromAddress);
	   InternetAddress[] toAddress=new InternetAddress[1];
	   toAddress[0]=new InternetAddress(email);
	   msg.setRecipients(Message.RecipientType.TO,toAddress);
	   msg.setSubject(subject);
	   msg.setText(body);
	   msg.saveChanges();
	   transport.sendMessage(msg,msg.getAllRecipients());//System.out.print("ok");
	   //Transport.send(msg);
	  }catch(NoSuchProviderException e){
	   e.printStackTrace();
	  }catch(MessagingException e){
	   e.printStackTrace();
	  }
	 }
	}
	class MyAuthenticator extends javax.mail.Authenticator {
	 private String strUser;
	 private String strPwd;
	 public MyAuthenticator(String user, String password) {
	  this.strUser = user;
	  this.strPwd = password;
	 }
	 protected PasswordAuthentication getPasswordAuthentication() {
	  return new PasswordAuthentication(strUser, strPwd);
	 }
	}
 

 


    
[2] SurfaceView跟View最本质的区别
    来源: 互联网  发布时间: 2014-02-18
SurfaceView和View最本质的区别
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。
那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。
当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中thread处理,一般就需要有一个event queue的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。

所以基于以上,根据游戏特点,一般分成两类。

1 被动更新画面的。比如棋类,这种用view就好了。因为画面的更新是依赖于 onTouch 来更新,可以直接使用 invalidate。 因为这种情况下,这一次Touch和下一次的Touch需要的时间比较长些,不会产生影响。

2 主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞main UI thread。所以显然view不合适,需要surfaceView来控制。

    
[3] ipv4 ipv6 原理与怎么使用
    来源: 互联网  发布时间: 2014-02-18
ipv4 ipv6 原理与如何使用

ipv6是ipv4的升级版 它拥有更多的IP地址

 

一:
 IPv4地址也时常以一组4个2位的十六进制整数或4个8位的二进制整数表示,但后一种情况较少见。
4×8 = 32    201.199.244.101
4个字段 每个4byte

 

二:
  表达式一:
  IPV6优先选用的形式是 X:X:X:X:X:X:X:X ,其中X是1个16位地址段的十六进制值。例如:
8个字段 每个4个4byte    8×4×4 = 128
  FEDC:BA98:7654:4210:FEDC:BA98:7654:3210

  表达式二:
  会发生包含长串0位的地址。为了简化包含0位地址的书写,可以使用“::”符号简化多个0位的16位组。“::

”符号在一个地址中只能出现一次。该符号也可以用来压缩地址中前部和尾部的0。举例如下:

    FF01:0:0:0:0:0:0:101 多点传送地址
    0:0:0:0:0:0:0:1 回送地址
可用下面的压缩形式表示:

    FF01::101 多点传送地址
    ::1 回送地址

 

ip 实际地址:
192.168.1.107
fe80::5efe:192.168.1.108%2

import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.UnknownHostException;

public class MyTest {

 /**
  * @param args
  * @CreateDate:2012-3-12
  * @author 
  * @throws UnknownHostException
  */
 public static void main(String[] args) throws UnknownHostException {
  // TODO Auto-generated method stub
  MyTest t = new MyTest();
//   ipv4地址
//  t.ipv6("www.163.com");
  // ipv6地址
//  t.ipv6("www.neu6.edu.cn");
  t.ipv6("fe80::5efe:192.168.1.108%2");
 }
 
 public void ipv6(String ip) throws UnknownHostException{
  if (ip.length() == 0)
  {
   return;
  }
  InetAddress address = InetAddress.getByName(ip);
  System.out.println("IP: " + address.getHostAddress());
  switch (address.getAddress().length)
  {
   case 4:
    System.out.println("根据byte数组长度判断这个IP地址是IPv4地址!");
          break;
      case 16:
          System.out.println("根据byte数组长度判断这个IP地址是IPv6地址!");
          break;
   }
   if (address instanceof Inet4Address)
   System.out.println("使用instanceof判断这个IP地址是IPv4地址!");
    else if (address instanceof Inet6Address)
   System.out.println("使用instanceof判断这个IP地址是IPv6地址!");
 }

}


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
Web服务器/前端 iis7站长之家
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3