孤独是因为思念谁

  ——盗泉不灌

用户操作
[即时聊天] [发私信] [加为好友]
盗泉ID:daoquan
117560次访问,排名809,好友0人,关注者18人。
乒乓球
daoquan的文章
原创 177 篇
翻译 1 篇
转载 44 篇
评论 4 篇
盗泉的公告
    ((`'-"``""-'`))
     )   -    -  (
    /   (o _ o)   \
    \    ( 0 )    /
    _'-.._'='_..-'_
  /`;#'#'#.-.#'#'#;`\
最近评论
waker615:汗,买了HAIER的冰箱,不知道命运会是如何……
daoquan:在用户登录成功的时候应该是这样处理的,减少一次客户端请求。在后续阶段在采取被动数据发布机制。

这篇文章收录很久了,大概现在的通讯模型已经改变。
djgpp:我觉得,用户登录成功,服务器并不是将用户需要的场景传送给客户,而服务器采取被动数据发布的机制。
一种基于话池技术的做法,首先将合法的用户添加到会话池,在服务器每一次循环(当然可以设置时间间隔),检测一次会话池,是否有新的消息,如果有来自客户端新消息,则进行消息分析,然后根据要求处理,比如客户请求人物信息或者场景信息等,服务器被动的传送给客户,然后必要时为其他客户做个广播。
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 利用Jmail发带附件的邮件收藏

    新一篇: Jmail收发邮件时的连接验证类 | 旧一篇: 深入Java中文问题及最优解决方法

    package com.sidiw.util.jmail;

    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;

    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    import javax.activation.FileDataSource;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeMessage.RecipientType;

    import sun.misc.BASE64Encoder;

    public class SendMail {
        /** 文本编码 */
        private String encode;

        /** 文本还是html内容 */
        private boolean HTML;

        private Session session;

        private Transport transport;

        private BASE64Encoder enc = new sun.misc.BASE64Encoder();

        public SendMail() {
            this.encode = "GBK";
            this.HTML = true;
        }

        public SendMail(String encode, boolean html) {
            this.encode = encode;
            this.HTML = html;
        }

        public boolean connect(String smtpHost, String uid, String pwd) {
            boolean result = false;

            ConnectMail connect = new ConnectMail();
            result = connect.connectSmtp(smtpHost, uid, pwd);
            this.session = connect.getSession();
            this.transport = connect.getTransport();

            return result;
        }

        public void close() {
            if (this.transport != null) {
                try {
                    this.transport.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

        public void send(Map outerMailInfo) {
            try {
                /** 文件附件编码 */
                //setFileName(MimeUtility.encodeText(fileName, "GBK"));
                /** 文件主题编码 */
                //msg.setSubject("=?GB2312?B?"+enc.encode(subject.getBytes())+"?=");
                String title = "=?"
                        + this.encode
                        + "?B?"
                        + enc.encode(((String) outerMailInfo.get("strTitle"))
                                .getBytes()) + "?=";

                MimeMessage mimeMessage = createMimeMessage(((String) outerMailInfo
                        .get("strFromName")), ((String) outerMailInfo
                        .get("strFrom")), ((String) outerMailInfo.get("strTo")),
                        ((String) outerMailInfo.get("strCc")),
                        ((String) outerMailInfo.get("strBcc")), title,
                        ((String) outerMailInfo.get("strContent")),
                        ((String[]) outerMailInfo.get("strFileNameList"))//outerMailInfo.getStrFileNameList()
                );
                transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }

        private MimeMessage createMimeMessage(String fromName, String from,
                String to, String cc, String bcc, String subject, String text,
                String[] filename) throws MessagingException {

            /** 加入调试信息 */
            session.setDebug(true);

            MimeMessage message = new MimeMessage(session);
            InternetAddress fromAddress = new InternetAddress(from);
            try {
                if (fromName != null)
                    fromAddress.setPersonal(fromName);
            } catch (Exception e) {
            }
            message.setFrom(fromAddress);

            InternetAddress[] toAddress = InternetAddress.parse(to);
            InternetAddress[] ccAddress = InternetAddress.parse(cc);
            InternetAddress[] bccAddress = InternetAddress.parse(bcc);

            message.setRecipients(RecipientType.TO, toAddress);
            message.setRecipients(RecipientType.CC, ccAddress);
            message.setRecipients(RecipientType.BCC, bccAddress);

            message.setSentDate(new Date());

            message.setSubject(subject, this.encode);
            /** 处理附件 */
            if (filename != null && filename.length > 0) {
                Multipart multipart = new MimeMultipart();

                MimeBodyPart mimeBodyPart = new MimeBodyPart();
                if (HTML) {
                    mimeBodyPart.setContent(text, "text/html;charset="
                            + this.encode);
                } else {
                    mimeBodyPart.setText(text, this.encode);
                }
                multipart.addBodyPart(mimeBodyPart);

                for (int i = 0; i < filename.length; i++) {
                    try {
                        MimeBodyPart fileBodyPart = new MimeBodyPart();
                        DataSource datasource = new FileDataSource(filename[i]);
                        fileBodyPart.setDataHandler(new DataHandler(datasource));
                        //fileBodyPart.setFileName(new
                        // File(filename[i]).getName());
                        //fileBodyPart.setFileName("=?GBK?B?"+enc.encode((datasource.getName()).getBytes())+"?=");
                        fileBodyPart.setFileName("=?" + this.encode + "?B?"
                                + enc.encode((datasource.getName()).getBytes())
                                + "?=");
                        multipart.addBodyPart(fileBodyPart);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                message.setContent(multipart);
            } else {
                if (HTML) {
                    message.setContent(text, "text/html;charset=" + this.encode);
                } else {
                    message.setText(text, this.encode);
                }
            }
            return message;
        }

        public static void main(String arg[]) {

            /*
             * new sendmail() 使用GBK的默认编码发送文本信息 new sendmail(编码,文本还是html);
             */
            SendMail mail = new SendMail("GBK", true);

            try {
                if (mail.connect("smtp.163.com", "shaoqiss@163.com", "937000")) {
                    for (int i = 0; i < 1; i++) {

                        Map outerMailInfo = new HashMap();

                        outerMailInfo.put("strFrom", "shaoqiss@163.com");
                        outerMailInfo.put("strTo", "shaoqi8266@chinaren.com");
                        outerMailInfo.put("strTitle", "发送测试send test");
                        outerMailInfo.put("strCc", "");
                        outerMailInfo.put("strBcc", "");
                        outerMailInfo.put("strContent",
                                "测试一下我的内容是可以吗?contexnt test");

                        //                    String[] fileName = new String[3];
                        //
                        //                    fileName[0] = "C:/tmp/1.txt";
                        //                    fileName[1] = "C:/tmp/2.txt";
                        //                    fileName[2] = "C:/tmp/Add.jpg";

                        //                    outerMailInfo.put("strFileNameList",fileName);

                        System.out.println("###############");

                        mail.send(outerMailInfo);

                        System.out.println("@@@@@@@@@@@@@@@");

                        System.out.print(i + "\t");
                    }
                    mail.close();

                }
            } catch (Exception e) {
                System.out.println(e.toString());
            }

        }
    }

    发表于 @ 2005年09月08日 10:22:00|评论(loading...)|编辑

    新一篇: Jmail收发邮件时的连接验证类 | 旧一篇: 深入Java中文问题及最优解决方法

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 盗泉