朱浩悅,浦仕鈞,范亞紅
(西安文理學(xué)院信息工程學(xué)院,陜西西安,710065)
基于Socket和JavaSwing的閱讀器的實(shí)現(xiàn)
朱浩悅,浦仕鈞,范亞紅
(西安文理學(xué)院信息工程學(xué)院,陜西西安,710065)
閱讀是人們工作和業(yè)余生活的重要活動(dòng)之一,小說閱讀器的出現(xiàn)節(jié)約了大量的紙張,利于環(huán)保,并具有經(jīng)濟(jì)價(jià)值。本系統(tǒng)實(shí)現(xiàn)了一個(gè)基于Socket的在線迷你小說閱讀器,并使用Java Swing技術(shù)做了簡單的界面。其主要功能包括會(huì)員的登錄和注冊(cè),按小說分類在線閱讀,上傳和下載小說。
小說閱讀器;Java Swing;Socket
人類社會(huì)繼工業(yè)文明的快速發(fā)展后,踏入了科學(xué)、經(jīng)濟(jì)、知識(shí)、信息迅猛發(fā)展的時(shí)代。高科技術(shù)的快速發(fā)展,信息技術(shù)的廣泛應(yīng)用,使人類的社會(huì)聯(lián)系變得更為緊密,全球一體化逐漸形成。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,人類的生存環(huán)境變得越來越數(shù)字化。網(wǎng)絡(luò)不僅給人類帶來了信息傳遞的快捷和便利,也正在逐漸地改變著人們的生存方式、思維方式和價(jià)值觀念。與此同時(shí),人們的閱讀習(xí)慣也跟隨著改變,現(xiàn)在,紙質(zhì)閱讀已越來越不能滿足人們的閱讀需求,人們追求更加便捷、經(jīng)濟(jì)和高效的閱讀方式,因此開發(fā)出一款經(jīng)濟(jì)實(shí)惠又好用的小說閱讀器變得很有必要。
此次開發(fā)設(shè)計(jì)的指導(dǎo)思想是盡可能簡單大方,使用者易于操作。Java語言是一種簡單、易學(xué)、易用的編程語言,因其可視化編程技術(shù)的完美表現(xiàn)和SQL語言功能的強(qiáng)大已成為編寫數(shù)據(jù)庫管理系統(tǒng)的主要語言之一。eclipse開發(fā)工具以其強(qiáng)大的工具和面向?qū)ο蟮囊詳?shù)據(jù)為中心的語言,將客戶/服務(wù)器和網(wǎng)絡(luò)功能集成于現(xiàn)代的、多連接的應(yīng)用程序,充分發(fā)揮了面向?qū)ο缶幊碳夹g(shù)和事件驅(qū)動(dòng)方式的優(yōu)勢不斷修正和改進(jìn)直到形成用戶滿意的可行性系統(tǒng)。通過對(duì)整個(gè)系統(tǒng)進(jìn)行研究分析,我們決定使用eclipse作為開發(fā)工具,利用Java Swing技術(shù)開發(fā)圖形界面,制作出出易用的閱讀平臺(tái)。
該閱讀器采用C/S架構(gòu),主要功能包括會(huì)員的登錄和注冊(cè),按小說分類在線閱讀,上傳和下載小說。其中在線閱讀小說部分需要列出小說的分類、按分類列出所有的小說并進(jìn)行讀取,小說通過配置文件配置服務(wù)器和客戶端的信息。下載小說時(shí)也要列出小說的分類并進(jìn)行分類下載。上傳小說時(shí)需要上傳小說的名稱,作者,簡介并將小說的內(nèi)容成功上傳到指定的小說分類下。
客戶端與服務(wù)端是多對(duì)一的關(guān)系,在功能實(shí)現(xiàn)上是一個(gè)服務(wù)端同時(shí)可以對(duì)應(yīng)很多個(gè)客戶端進(jìn)行互動(dòng)交互??蛻舳艘獙?shí)現(xiàn)用戶登錄,注冊(cè),用戶在線閱讀,上傳,下載。服務(wù)器端管理客戶端傳上來的文件(文件的存放分類),服務(wù)端有分類文件夾。當(dāng)客戶端用戶傳文件上來時(shí)可以選擇傳到哪個(gè)分類文件夾里面; 服務(wù)端能夠給予用戶權(quán)限(下載,上傳),權(quán)限設(shè)置。用戶注冊(cè)之后,服務(wù)端可以發(fā)放權(quán)限給用戶權(quán)限包括:上傳,下載,修改,服務(wù)端與其他用戶交互提示更新。用戶上傳某個(gè)文件上來,服務(wù)端會(huì)自動(dòng)把該文件的屬性,上傳者和更新時(shí)間記錄,當(dāng)有用戶對(duì)此文件進(jìn)行刪除時(shí)服務(wù)端對(duì)該用戶的用戶名進(jìn)行檢查,匹配成功即刪除,失敗即刪除失敗。
Socket通信是網(wǎng)絡(luò)中計(jì)算機(jī)進(jìn)行通信的一種方法。應(yīng)用程序通過調(diào)用系統(tǒng)提供的Socket庫函數(shù)很容易實(shí)現(xiàn)網(wǎng)絡(luò)里計(jì)算機(jī)的通信。應(yīng)用程序使用Socket的基本步驟是:
1)定義Socket,確定使用什么協(xié)議,面向連接或是非面向連接的。
2)確定是發(fā)送數(shù)據(jù)還是接收數(shù)據(jù)。
3)對(duì)于面向連接的方式
4)對(duì)于非面向連接的通信
5)地址格式設(shè)置方面也是很重要的一面
首先我們搭建基于Socket的C/S結(jié)構(gòu)設(shè)計(jì)的核心骨架,服務(wù)端和客戶端,同時(shí)在使用Socket進(jìn)行通信的過程中,對(duì)于兩端的端口號(hào)要一致。客戶端的程序使用Socket類建立負(fù)責(zé)連接到服務(wù)器的套接字對(duì)象。Socket的構(gòu)造方法是Socket(String host,int port),參數(shù)host是服務(wù)器的IP地址,port是一個(gè)端口號(hào)。建立套接字可能會(huì)發(fā)生IoException異常,因此需要捕獲異常。
在客戶端建立一個(gè)Socket需要如下幾個(gè)步驟:
1)通過系統(tǒng)調(diào)用Socket()建立一個(gè)Socket。
2)通過系統(tǒng)調(diào)用Connect()將Socket和服務(wù)器的地址連接起來。
3)發(fā)送和接收消息,有很多方法可以實(shí)現(xiàn)這個(gè)功能,最簡單的是使用系統(tǒng)調(diào)用read()和write()。
在服務(wù)器端建立一個(gè)Socket需要如下幾個(gè)步驟:
1)通過系統(tǒng)調(diào)用socket()建立一個(gè) Socket。
2)通過系統(tǒng)調(diào)用bind()將Socket綁定到一個(gè)地址,對(duì)于一個(gè)Internet上的 Socket,這個(gè)地址是由主機(jī)和端口號(hào)組成的。
3)通過系統(tǒng)調(diào)用listen()監(jiān)聽是否有客戶端的連接。
4)通過系統(tǒng)調(diào)用accept()受理一個(gè)請(qǐng)求。
5)發(fā)送和接收消息。
布局使用Java Swing里的網(wǎng)格布局完成實(shí)現(xiàn),實(shí)現(xiàn)的界面一共有六個(gè):注冊(cè)界面、登錄界面、菜單界面、閱讀界面,上傳、下載界面,以及服務(wù)端界面。注冊(cè)界面和登錄界面采用Java Swing的JTabbedPanel對(duì)注冊(cè)界面的JLabel和登錄界面的JLabel進(jìn)行管理。注冊(cè)界面的組件有五個(gè),用戶名,密碼,再次輸入密碼,確定和取消,這五個(gè)組件。登錄界面的一共有四個(gè)組件用戶名,密碼,確定和取消,這四個(gè)組件。具體效果如下圖所示:
圖1 注冊(cè)界面
圖2 注冊(cè)成功
菜單界面上的組件是比較多的,首先要顯示書的列表項(xiàng),在底部放四個(gè)按鍵分別是在線閱讀,上傳,下載,和返回登錄界面。
圖3 菜單界面
閱讀界面首先要實(shí)現(xiàn)它的閱讀功能,也就是JTextField這個(gè)組件,同時(shí)還有一個(gè)退出的按鈕。上傳和下載界面我們直接使用JFileChooser這個(gè)組件,用它已有的實(shí)現(xiàn)窗口去查找指定的內(nèi)容。
本文通過XML的dom4j解析,把客戶端發(fā)送的數(shù)據(jù)以文本的形式讀到服務(wù)器端,服務(wù)器端通過判斷客戶端的請(qǐng)求,給與客戶端響應(yīng),客戶端接收到服務(wù)端的響應(yīng)消息,將結(jié)果顯示到用戶界面。
程序中使用的xml文本文件及解析如下:
1)小說類xml文件:
首先創(chuàng)建小說根節(jié)點(diǎn),然后添加小說類集合,再給小說類集合里添加小說屬性,分別是名稱,作者,作者簡介,簡要介紹等等,以<>>這種形式添加形成xml文本文件。如下:e
Socket and Java Swing-based implementation of the reader
Zhu Haoyue,Pu Shijun,Fan Yahong
(Xi'an University of Arts and Information Engineering,Shanxi Xi'an,710065)
Reading is one of the important activities of work and leisure life of the people, the emergence of the novel the reader to save a lot of paper, environmentally friendly, and has economic value. The system implements a Socket-based online mini-fiction reader, and use Java Swing technology to do a simple interface. Its main features include members login and registration, classification according to the novel online reading, upload and download novels.
fiction reader; Java Swing; Socket
圖4 閱讀界面
TP319
A
西安文理學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目,編號(hào):201524