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

📄 clientsend.java

📁 基于UDP的可靠邮件系统
💻 JAVA
字号:
package org.hwmhere.email.client;

import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Collection;

import org.hwmhere.email.EmailConstant;
import org.hwmhere.email.impl.Email;
import org.hwmhere.email.mailet.MailAddress;
import org.hwmhere.udp.send.*;

public class ClientSend {

	private String sendPath;

	private String name;

	private Email email;

	private InetAddress server;

	private int serverPort;

	private MailAddress sender;

	/**
	 * @param sendPath
	 * @param receiver
	 * @param sender
	 * @param email
	 */
	public ClientSend(String sendPath,MailAddress sender) {

		this.sendPath = sendPath;
		this.sender = sender;

	}

	public void send(MailAddress receiver, Email email) throws Exception {

		this.server = getServer(receiver);
		this.serverPort = getServerPort(receiver);
		this.email = email;

		File dFile = new File(sendPath);
		if (!dFile.exists()) {
			dFile.mkdirs();
		}
		
		// 写入Email文件
		File sendMail = new File(sendPath + email.getSender().toString()+email.hashCode() + ".email");
		FileOutputStream fileOutputStream = new FileOutputStream(sendMail);
		ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream);
		oos.writeObject(email);
		fileOutputStream.close();
		oos.close();
		// 读出
		System.out.println("Email文件长度" + sendMail.length());
		byte[] b = new byte[(int) sendMail.length()];
		FileInputStream fis = new FileInputStream(sendMail);
		// 用来发送
		fis.read(b);
		RUDPSender updSender = new RUDPSender(server, serverPort, b);
		updSender.send();
	}

	public static void main(String args[]) throws Exception {

		String sendPath = "D:/test/send/";

		String name = "helo";
		MailAddress sender = new MailAddress("user@localhost");
		Collection recipients = new ArrayList();
		recipients.add(new MailAddress("bob@localhost"));
		String message = "hello.mail";
		Email email = new Email(name, sender, recipients, message.getBytes());
		email.setAttribute("content", "hello,it's a email");

		// 写入Email文件
		File sendMail = new File(sendPath + email.getSender().toString()+email.hashCode() + ".email");
		FileOutputStream fileOutputStream = new FileOutputStream(sendMail);
		ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream);
		oos.writeObject(email);
		fileOutputStream.close();
		oos.close();

		// 读出
		System.out.println("Email文件长度" + sendMail.length());
		byte[] b = new byte[(int) sendMail.length()];
		FileInputStream fis = new FileInputStream(sendMail);
		// 恢复email类
		// FileInputStream fis = new FileInputStream(sendMail);
		// ObjectInputStream ois = new ObjectInputStream(fis);
		// Email mailTo = (Email) ois.readObject();
		// System.out.println("to:" + mailTo.getAttribute("content"));
		// System.out.println("to:" + new String(mailTo.getMessage()));
		// fis.close();
		// ois.close();
		// fis = new FileInputStream(sendMail);

		// 用来发送
		fis.read(b);
		System.out.println("一共发送字节数:" + b.length);
		System.out.println("每个包包含字节数:" + 512);
		System.out.println("所以一共有:" + (b.length / 512 + 1) + "个包");

		InetAddress server = InetAddress.getByName("localhost");
		RUDPSender updSender = new RUDPSender(server, 6790, b);
		updSender.send();

	}

	public Email getEmail() {
		return email;
	}

	public void setEmail(Email email) {
		this.email = email;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSendPath() {
		return sendPath;
	}

	public void setSendPath(String sendPath) {
		this.sendPath = sendPath;
	}

	public InetAddress getServer(MailAddress receiver)
			throws UnknownHostException {

		return InetAddress.getByName(receiver.getHost());

	}

	public void setServer(InetAddress server) {
		this.server = server;
	}

	public int getServerPort(MailAddress receiver) {
		return 6790;
	}

	public void setServerPort(int serverPort) {
		this.serverPort = serverPort;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -