freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電子郵件收發(fā)系統(tǒng)設(shè)計-在線瀏覽

2024-08-10 08:36本頁面
  

【正文】 發(fā)現(xiàn)在郵件緩存中有待發(fā)送的郵件,就向運行在接收端郵件服務(wù)器的 SMTP 服務(wù)器進程發(fā)起 TCP 連接的建立。當(dāng)所有的待發(fā)送郵件發(fā)完了,SMTP 就關(guān)閉所建立的 TCP 連接。收信人在打算收信時,調(diào)用用戶代理,使用 POP3(或 IMAP)協(xié)議將自己的郵件從接收端郵件服務(wù)器的用戶郵箱中的取回(如果郵箱中有來信的) 。其中,各個圖形用戶界面是為了方便用戶使用該客戶端而設(shè)計;用戶鑒權(quán)和客戶端配置信息,是主界面在加載時,針對每個特定的用戶,加載其個人設(shè)置;用戶信息模型和賬戶信息模型用來對用戶進行登錄驗證,設(shè)置郵箱賬戶時的信息進行封裝。 系統(tǒng)模塊的劃分按照本系統(tǒng)的總體功能劃分,可以將這個電子郵件客戶端分成 5 大模塊,首先是登錄模塊,作為驗證需要;其次是接收郵件模塊,該模塊負責(zé)郵件的接收,再次是發(fā)送模塊,該模塊負責(zé)該對方發(fā)送郵件;接著是郵件處理模塊,該模塊負責(zé)郵件的閱讀、保存等操作;然后是郵件賬戶的管理,該操作負責(zé)設(shè)置客戶端對公網(wǎng)的身份標識。(1) 接收郵件線程。為了可以同時接收多個郵件,保持并發(fā)性,本設(shè)計使用 java 多線程的功能,設(shè)計一個可以多線程的接收郵件線程;(2) 保存郵件。當(dāng)客戶端收到一個郵件后,必須能夠?qū)崟r刷新主界面以提醒用戶。(1) 編寫新郵件。(2) 發(fā)送新郵件。 發(fā)送郵件模塊的圖示:10 / 41發(fā)送郵件模塊編寫新郵件發(fā)送新郵件 發(fā)送郵件模塊圖 郵件處理模塊郵件處理模塊主要對郵件進行閱讀和保存功能,包括圖中的幾個部分。(2) 保存郵件。(3) 顯示錯誤信息。郵件處理模塊的圖示:郵件處理模塊顯示郵件內(nèi)容 顯示錯誤信息自動保存郵件 郵件處理模塊圖 界面實現(xiàn)的流程圖如上所述,本設(shè)計的郵件客戶端需要六個不同的界面,都采用 java swing技術(shù)實現(xiàn),java swing 提供豐富的圖形組件和多樣的布局方式,以及事件注冊處理機制,在本設(shè)計中使用 java swing 技術(shù)實現(xiàn)這些界面,其流程如圖 所示:11 / 41開始結(jié)束聲明控件對象聲明面板容器對象初始化面板容器對象并設(shè)置布局方式初始化控件對象并注冊事件將控件添加到面板對象中 圖 界面實現(xiàn)流程圖其中的部分代碼如下:……(newButton)。(recboxButton)。(setButton)。()。(tab,new BorderLayout().CENTER)?!?郵件發(fā)送過程的流程圖郵件發(fā)送過程需要使用 SMTP 協(xié)議,因此在本設(shè)計中,將 SMTP 協(xié)議的各個字段封裝到了一個對象中去,便于維護和管理,郵件發(fā)送的實現(xiàn)過程如圖 所示,其部分實現(xiàn)代碼如下……String destip = (username).replace(_, .)。BufferedReader br = getReader(socket)。sendAndReceive(null,br,pw)。return。if((FAILED)){return。if((FAILED)){return。if((FAILED)){return。if((FAILED)){(, 郵件發(fā)送失?。?null , 0)。}sendAndReceive((), br, pw)。return。 郵件接收流程郵件接收流程是該設(shè)計的基本功能之一,其使用的仍是 SMTP 協(xié)議流程,在本設(shè)計中,針對收到的郵件會將其封裝到一個未讀郵件的對象中去,具體流程如圖 所示,其部分代碼如下所示:開始結(jié)束啟動接收郵件線程收到對方請求 , 發(fā)送收到響應(yīng)碼接收對方郵件信息建立 S o c k e t 連接發(fā)送響應(yīng)給對方是否成功保存郵件到本地磁盤錯誤提示對話框是否刷新主界面圖 郵件接收流程14 / 41while((request = ())!=null){if((mail from:) amp。 () amp。 (.)|| (.)){isMAILFROM = true。continue。continue。amp。amp。(250 recipient ok)。}else if(!isRCPTTO){(500 mand not recognized)。}if((data)){isDATA = true。continue。continue。(.)。content = ().substring(0, ().length()1)。(250 ok)。return。return new PrintWriter(out, true)。 try { is = ()。} BufferedReader br = new BufferedReader(new InputStreamReader(is))。 } 用戶鑒權(quán)和客戶端配置信息流程該模塊是在主界面加載前,針對不同的用戶,加載相應(yīng)的設(shè)置,其包含保存用戶信息流程,更改用戶信息流程,保存郵箱賬戶信息流程,更改郵箱賬戶信息流程,獲取收到的郵件信息流程,設(shè)置郵件是否已讀流程。 開始結(jié)束讀取本地 X M L 用戶信息文件使用 J D O M 解析該文件返回用戶信息配置模型對象將解析到的信息填充到用戶信息配置模型中去開始結(jié)束讀取本地 X M L 用戶信息文件使用 J D O M 解析該文件保存更改到本地 X M L 文件使用傳入的用戶信息配置模型對象相應(yīng)字段設(shè)置解析到的文件字段 獲取用戶信息流程 更改用戶信息流程圖 protected User getUserProfile(){User user = new User()。try{Document doc = (USERFILE)。16 / 41String username = (USERNAME).getText()。String password = (PWD).getText()。boolean login = new Boolean((LOGIN).getText())。}catch(Exception e){()。}protected void setUserProfile(User user){SAXBuilder builder = new SAXBuilder()。Element rootElement = ()。(PWD).setText(())。XMLOutputter fmt=new XMLOutputter()。 f = ()。 (doc, writer)。}catch(Exception e){()。String name = (index1).getName()。int sindex = (_)。String rest = (sindex+1, length)。topic = (0,index2)。17 / 41in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)))。String string = null。}string = ()。showcontent(string)。登陸選擇指定郵件用戶和密碼。使用默認用戶登錄后,用戶可以更改登錄賬戶。登錄界面的效果圖: 登錄界面設(shè)置賬戶界面用來標識對公網(wǎng)的客戶端身份,只有設(shè)置正確存在的公網(wǎng)賬戶才可以使用本客戶端對外發(fā)送郵件。系統(tǒng)主要實現(xiàn)了對于郵件的發(fā)送、接收、刪除、郵件夾的管理等功能。然而由于時間的緣故,并不能進行逐步測試,因此仍然有很多地方需要改進。及那個這些表格或 Word 文檔以附件的形式上傳,然后發(fā)送。但本系統(tǒng)未實現(xiàn)此功能。無論在理論上還是在實踐中,彭老師都給了我很大的幫助,使我得到不少的提高這對于我以后的工作和學(xué)習(xí)都有一種巨大的幫助。 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有許多可敬的師長、同學(xué)、朋友給了我無私的幫助,在這里請接受我誠摯的謝意!23 / 41參考文獻[1]張堯?qū)W等編著,計算機網(wǎng)絡(luò)與Inter教程(第三版).北京:清華大學(xué)出版社,2022[2]Computer Networks,Version Prentice Hall International,(《計算機網(wǎng)絡(luò)》第四版,清華大學(xué)出版社影印版,2022)。[4]謝希仁主編,《計算機網(wǎng)絡(luò)》(第三版),北京:電子工業(yè)出版社,2022。private User user。public static JFrame jFrame。public static final String NEW = 寫 信,RECEIVED = 收 信,RECBOX = 收件箱,DRAFT = 草 稿, SET = 設(shè) 置 。public static int DRAFT_EMAIL = 0。public static JTabbedPane tab。public Color[] colorStyle = new Color[]{,E,}。public JPanel labelPanel。public static int UNREADNUMBER = getUnreadCounter(())。private static boolean flag = false。public MainUI(String title){ = title。initTable()。isFirstLogin = ()。}public void initButton() {// TODO Autogenerated method stubnewButton = new JButton(NEW)。()。(listener)?!璪uttonPanel = new JPanel()。(new GridLayout(BUTTON_NUMBER, 0,0,0))。(recButton)。(draftButton)。}public void initTable() {// TODO Autogenerated method stubtab = new JTabbedPane()。(mListener)。……()。……()。()。(start01)。(start03)。new Thread(new changeColor()).start()。(0, 0, SCREEN_WIDTH*3/4,SCREEN_HEIGHT*3/5)。(buttonPanel,new BorderLayout().WEST)。(true)。(false)。}()。}private ActionListener listener = new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {// TODO Autogenerated method stubif(().equals(NEW)){SendUI sendUI = new SendUI(new MainUI())。(NEW,sendPanel)。}else if(().equals(SET)){new SetUI(new MainUI())。tempPanel = ()。(tempPanel)。}else{(tempPanel)。private MouseListener mListener = new MouseListener() {……public void mouseClicked(MouseEvent e) {// TODO Autogenerated method stubif(() == 2){if(()!=labelPanel){if(().equals(tempPanel)){flag = false。}}}}。new MainUI(E_main Client).start()。for(int j=0。j++){(colorStyle[j])。} catch (InterruptedException e) {// TODO Autogenerated catch block()。}}}}}發(fā)送郵件界面package 。private static final String SEND=發(fā) 送,DRAFT =存草稿。private JButton sendButton,draftButton,cancelButton。public static JTextField reciverField, ccField, scField,topicField。private JPanel returnPanel。int width = 。(30, 10,width30, height10)。(new BorderLayout())。()。(listener)。()。(sendButton)。(cancelButton
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1