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

正文內(nèi)容

局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文-預(yù)覽頁

2025-07-19 02:56 上一頁面

下一頁面
 

【正文】 的類庫,包括URL、URLConnection、Socket、 ServerSocket等。對指針的丟棄是Java的明智選擇。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。Java語言是可移植的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式, 然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。事實上,Java的運行速度隨著JIT(JustInTime)編譯器技術(shù)的發(fā)展越來越接近于C++。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。Java語言的設(shè)計目標之一是適應(yīng)于動態(tài)變化的環(huán)境。Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護費用。 Java與Internet Java語言取得成功的領(lǐng)域之一就是網(wǎng)絡(luò):(其他語言)數(shù)頁代碼(Java),Internet上的信息內(nèi)容都是一些乏味死板的HTML文檔。SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術(shù)應(yīng)用于WEB上,并且開發(fā)出了HotJava的第一個版本。為了實現(xiàn)客戶端同服務(wù)器端的通信,客戶端首先發(fā)送一個“SYN”數(shù)據(jù)包。這種通信模式也叫客戶端/服務(wù)器(C/S)模式。但它們怎樣才能“發(fā)現(xiàn)”對方呢?這就像在游樂園里那樣:一臺機器不得不停留在一個地方,偵聽其他機器說:“嘿,你在哪里呢?” “停留在一個地方”的機器叫做“服務(wù)器”(Server);到處“找人”的機器則叫做“客戶機”(Client)或者“客戶”。而客戶機的任務(wù)是試著與一臺服務(wù)器建立連接,這是由我們創(chuàng)建的特定客戶機對象完成的。這正是Java聯(lián)網(wǎng)最方便的一個地方。2 需求分析 可行性分析經(jīng)濟可行性:由于本系統(tǒng)的主要背景是畢業(yè)課程設(shè)計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟要求也不高,只要有一臺能運行Java軟件的電腦便可,所以不用考慮到經(jīng)濟問題。運行可行性: 本系統(tǒng)為一個小型的局域網(wǎng)聊天系統(tǒng),所耗費的資源非常的小,現(xiàn)在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運行上是可行的。 。使系統(tǒng)能夠無論在功能設(shè)計上,還是在技術(shù)實現(xiàn)上,都處于同行業(yè)的領(lǐng)先地位。 代碼可讀性好:文中的代碼將盡可能簡潔,易懂。 系統(tǒng)實現(xiàn)原理圖 系統(tǒng)實現(xiàn)層次圖:交互聊天系統(tǒng)服務(wù)器端客戶端建立連接操作數(shù)據(jù)庫監(jiān)聽客戶用戶注冊用戶登陸查找好友聊天 系統(tǒng)實現(xiàn)層次圖 服務(wù)器端結(jié)構(gòu)圖 為服務(wù)器端程序界面,負責為服務(wù)器的啟動提供界面服務(wù)。 負責將聊天過程中不合法的話語文件等過濾掉,返回合法內(nèi)容。 為客戶端程序聊天室主界面,負責接收、 親密合作。用戶的基本信息表(icq)序號字段名含義數(shù)據(jù)類型NULL1Icqno用戶號碼IntNo2Nickname用戶昵稱CharNo3Password用戶密碼CharNo4Status用戶在線否BitNo5Ip用戶的IP地址CharYes6Info用戶的資料VarcharYes7Sex用戶的年齡CharYes9Email用戶的CharYes8Place用戶的籍貫CharYes用戶的好友表(friend)序號字段名含義數(shù)據(jù)類型NULL1Icqno用戶的號碼IntNo2Friend好友的號碼IntNoER圖1nIcqFriend屬于 當用戶登錄成功后,用戶的登錄界面將會隱藏,然后創(chuàng)建用戶聊天室窗口,在界面的標題欄將會顯示當前登錄用戶的用戶名用戶需要發(fā)送信息時,在聊天內(nèi)容里寫下要發(fā)送的信息,然后點擊發(fā)送就可以發(fā)送到其他客戶端,也可以選擇私聊,聊天表情,聊天信息通過服務(wù)器發(fā)送到其他客戶端。 3. 能夠接受私聊信息并發(fā)送給特定的用戶。具體代碼如下所示:public ServerThread(Socket s) throws IOException {//線程構(gòu)造函數(shù) socket=s。//啟動線程 }public void run(){//線程監(jiān)聽函數(shù)try{ while(true){ String str=()。 String sql=select nickname,password from icq where icqno=?。//取得輸入字符串 if((end))break。 //準備從數(shù)據(jù)庫選擇呢稱和密碼 …… } 首先服務(wù)器啟動線程監(jiān)聽,當監(jiān)聽到有客戶端申請連接時根據(jù)客戶端提出的申請作出響應(yīng)的處理,;:odbc:javaicq的數(shù)據(jù)庫,如果客戶端輸入的字符串表示登陸則服務(wù)器接收到該信息后連接數(shù)據(jù)庫,準備從數(shù)據(jù)庫選擇昵稱和密碼。 如果取得客戶端輸入的字符串為”new”則代表用戶申請新建用戶,首先用以上連接數(shù)據(jù)庫的方法連接數(shù)據(jù)庫然后用java語句套接Sql語句方法語句String newsql=insert into icq(nickname,password,info,place) values(?,?,?,?,?,?)來準備接受用戶的昵稱、密碼、個人資料、等信息也是準備為新用戶開辟空間, 當用戶將自己填寫好的資料發(fā)送的服務(wù)器時服務(wù)器通過語句String sql2=select icqno from icq where nickname=?。矢量來保存好友號碼如果取得客戶端輸入的字符串為”addfriend”則表示用戶申請?zhí)砑雍糜?,連接好數(shù)據(jù)庫后通過int friendicqno=(())語句來查詢要添加對象的號碼,然后通過String addfriend=insert into friend values(?,?)語句把接受的用戶號碼及好友號碼向好友表添加記錄如果取得客戶端輸入的字符串為”addfriend”則表示用戶申請刪除好友,連接好數(shù)據(jù)庫,通過int friendicqno=(())語句來確認用戶好友表中要刪除的好友的號碼,再用String addfriend=delete from friend where icqno=? and friend=?語句向用戶好友的表中刪除記錄如果取得客戶端輸入的字符串為”logout”則表示用戶申請退出程序,連接數(shù)據(jù)庫,根據(jù)接受的用戶號碼,將其狀態(tài)字段設(shè)為0,及ip地址設(shè)為空.服務(wù)器端的主要代碼:public class Server{//主服務(wù)器類public static void main(String args[])throws IOException{ServerSocket s=new ServerSocket(8080)。 try{new ServerThread(socket)。具體開發(fā)由于代碼太長不宜在論文中詳述所以本客戶端只對如何和服務(wù)器端進行網(wǎng)絡(luò)連接做比較詳細的代碼闡述。import .*。//服務(wù)器名 int serport。程序界面 …… ……當點擊登陸按紐時代碼的實現(xiàn) void login_mouseClicked(MouseEvent e) {//登錄按扭 try{Socket socket=new Socket((server),serport)。//告訴服務(wù)器我要登錄(())。//從服務(wù)器讀取消息 //如果失敗就告訴出錯 if((false)) (this,對不起,出錯了:(,ok,)。 (true)。JDialog d=new Register(server,serport)。()。import .*。import .*。//連接服務(wù)器 BufferedReader in=new BufferedReader(new InputStreamReader(()))。//發(fā)送呢稱等信息(())。//head picindexint no。 //do{ str=().trim()。//并打開主窗口 MainWin f2=new MainWin(no,sername,serverport)。 // ()。 server=sername。 CreatUDP()。 ()。 (zhy+sendSocket)。}catch(SocketException se){()。若客戶端發(fā)送數(shù)據(jù)報文包則構(gòu)造函數(shù)創(chuàng)建DategramPacket對象,將需要發(fā)送的數(shù)據(jù)和包文目的地址信息放入對象之中。 // (s)。 if((null)||()||(0)){(this,:(對不起,不在線,ok,)。 ()。 (2).監(jiān)聽好友消息首先用run()啟用一線程,再將此線程無限監(jiān)聽好友的消息,無限監(jiān)聽在監(jiān)聽好友消息中定義一個空數(shù)組,該數(shù)組用于接受消息中的數(shù)據(jù);然后創(chuàng)建數(shù)據(jù)報,(receivePacket)函數(shù)等待并接受數(shù)據(jù)報,用byte[]date=()函數(shù)來取得數(shù)據(jù)報中的數(shù)據(jù)。 Public int getPort():返回發(fā)送或接受數(shù)據(jù)報的遠程主機的端口號。receive()方法會一直阻塞直至受到一個數(shù)據(jù)報報文,而該函數(shù)存放在DategramPacket對象的緩沖區(qū)中。在這次的畢業(yè)設(shè)計中,我應(yīng)用了JAVA開發(fā)工具在WINDOWS平臺上開發(fā)了一個基于WINDOWS平臺的局域網(wǎng)通信工具,在這一重要的領(lǐng)域進行了相關(guān)的實踐,不管是對我的研究能力,還是實際動手能力,還是資料查閱能力,都起了相當大的益處。生成的聊天室可以達到基本的聊天要求,具有較高的研究價值。進入社會后,我以后會更加努力,是學校給我學習的機會,在以后的生活中繼續(xù)提高自己,為自己創(chuàng)造更多的機會,更好的明天! 31
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1