java基于Socket设计一个Mail的收发客户端

这篇博客介绍了作者使用Java基于Socket设计一个邮件收发客户端的实践过程,包括使用Winmail作为邮件服务器,Eclipse作为编程工具。文章讨论了程序的结构设计,如采用模板模式处理发送和接收邮件的指令流,以及数据结构如GlobalVar、UserInfo等。此外,还提到了软件架构的不足,例如没有完全分离输入输出和逻辑处理,并建议改进日志系统。
摘要由CSDN通过智能技术生成

这是一个很无聊的作业。大约花了我一天的时间。
介绍下实验工具
邮件服务器用winmail
编程工具用Eclipse
键盘是cherry的红轴机械键盘高键位(不伤手,用立白)
桌子是自由升降桌(站着编程,有利于身体骨骼健康)

首先为了便于程序之间的数据交换,要先设计几个结构体
分别是
GlobalVar 用于存储全局数据,如服务器地址,端口号
UserInfo 存储用户的用户名和密码
GetMailInfo存储接受的邮件信息
MailList 建立一个链表,存储从服务器得来的所有的邮件,里面没一个数据是一个GetMailInfo
SendMailInfo发送邮件的数据结构


public class GlobalVar {
   
     public static String serverHost="192.168.153.133";
     public static int SMTPPort=25;
     public static int POP3Port=110;
}


public class GetMailInfo {
   
    public String received_from;
    public String subject;
    public String content;
}


public class SendMailInfo {
   
     public String serverHost="192.168.153.132";
     public int serverPort=25;
     public String mail_from;
     public String rcpt_to;
     public String subject;
     public String from;
     public String content;
}


public class UserInfo {
   
     public String serverHost;
     public int serverPort;
     public String user;
     public String password;
}

mailList.java

import java.util.LinkedList;


public class MailList {
    LinkedList<GetMailInfo> mails;
    public MailList()
    {
        mails=new LinkedList<GetMailInfo>();
    }



    public void putMail(GetMailInfo mail)
    {
        mails.push(mail);
    }

    public GetMailInfo getMail()
    {
        return mails.pop();
    }

    public int mailCount()
    {
        return mails.size();
    }
}

软件的架构。
采用了一定的分层架构。当然不是MVC。因为我并没有把软件的输入和程序的逻辑分开,这个实在不应该。在处理发送邮件和接受邮件的指令流上,我的设计模式是模板(GetMailTemple和SendMailTemple),向模板类传入适当的数据类&#

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值