📄 smtpserver.java
字号:
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.File;
import java.io.IOException;
import java.io.FileInputStream;
import java.awt.event.*;
import java.net.ServerSocket;
import java.net.InetAddress;
import java.net.*;
public class SmtpServer
{
public static final String rootDir="E:\\mailroot"; //邮件存放目录
private final int smtpPort=25;//服务器开放端口号
private final int Num=10;//最大连接数目
public static final String domain="MYSMTP";//本地服务器域名
public static final String domain2="MYSMTP2";//局域网中服务器域名
public static void main(String args[])
{
SmtpServer server=new SmtpServer();
}
public SmtpServer()
{
start();
}
public void start()
{
System.out.println("my smtp server start......");
ServerSocket serverSocket=null;
Socket socket=null;
try
{
serverSocket=new ServerSocket(smtpPort,Num);//创建服务套接字
}
catch(IOException e)
{
e.printStackTrace();
System.exit(1);
}
while(true)
{
try
{
socket=serverSocket.accept();//等待用户端连接
dxc dxc1=new dxc(socket);//一旦有连接,将会启动一个线程处理该用户
Thread newthread=new Thread(dxc1);
newthread.start();
}
catch(Exception e)
{
}
}
}
}
class dxc implements Runnable
{
Socket socket=null;
public dxc(Socket socket1)
{
socket=socket1;
}//构造函数,初始化socket对象
public void run()
{
System.out.println("server start");
InputStream input=null;
OutputStream output=null;
try{
System.out.println("receive a new request");
input=socket.getInputStream();//取得输入流对象
output=socket.getOutputStream();//取得输出流对象
Request request=new Request(input);//初始化request类
Response response=new Response(input,output);//初始化response类
response.setRequest(request);
response.sendEventMsg(Response.WELCOME);
while(request.getRequestType()!=Request.QUIT)//判断通信是否结束
{
request.getMsg();//调用方法取得用户输入信息
response.sendEventMsg(request.getRequestType());//处理用户请求
}
socket.close();//关闭套接字
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -