999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用JAVA實現的基于TCP協議的網絡聊天室

2020-07-04 16:19:51王海燕郭元穎
科學與財富 2020年14期

王海燕 郭元穎

摘 要:Java是Sun公司推出的新一代面向對象的程序設計語言,由于它與生俱來的一些特性,例如: 面向對象、平臺無關、 多線程、 高度安全性等等,使得它特別適合于網絡應用程序的開發[1]。本文通過Java語言中的Socket編程、JDBC、多線程以及圖形界面等相關技術來設計、實現了一個基于TCP協議的網絡聊天室系統。

關鍵詞:Java;Socket編程;多線程;網絡聊天室

一、聊天室所涉及到的理論知識

在開發聊天室系統時,考慮到界面以及功能的實現,涉及到的理論知識點如下:

(一)圖形界面

Swing是Java為圖形界面應用開發提供的一組工具包,是Java基礎類的一部分。Swing 包含了構建圖形界面(GUI)的各種組件,如: 窗口、標簽、按鈕、文本框等。Swing 提供了許多比 AWT 更好的屏幕顯示元素,使用純Java實現,能夠更好的兼容跨平臺運行[2]。

(二)Socket編程

網絡上的兩個程序通過一個雙向的通訊連接實現數據的交換,這個雙向鏈路的一端稱為一個Socket。Socket實際上是計算機提供的一個通信端口,通常用來實現客戶端和服務器端的連接。當客戶端程序連接到服務器端程序時,也就建立了一個雙向通信連接,客戶端就可以訪問服務器上的資源,同時得到相應的服務。例如網絡上常用的telnet、ftp等協議都是基于Socket的服務器程序。

(三)多線程

一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。Java支持多線程,因此用Java編寫的應用程序可以同時執行多個任務。考慮到服務器端可以同時給連接的多個客戶端提供服務,需要通過多線程來實現。

(四)JDBC

JDBC,Java Database Connective,是連接java程序和數據庫之間的橋梁。它實際上是Java語言訪問數據庫的一種規范,是一組標準的Java語言中的接口和類。使用這些接口和類,Java客戶端程序可以訪問各種不同類型的數據庫。考慮到網絡聊天室中聊天信息的持久保存,可通過JDBC來實現。

二、聊天室的設計

本文的聊天室系統采用C/S結構,C表示客戶端,S表示服務器端。C/S結構是目前較為流行的網絡系統開發結構,它可以充分利用兩端硬件環境的優勢,降低系統的通訊開銷。通信時,先由客戶端向服務器端發出連接請求,服務器端始終運行來提供服務。服務器啟動后,就會監聽網絡端口,一旦監聽到有客戶端請求,就會啟動一個服務線程來響應該客戶端,為該客戶端提供服務,同時繼續監聽服務器端口,再來一個客戶端還能繼續提供服務,以此類推,這樣服務器端可以同時為多個客戶端提供服務。

系統在設計時分為界面設計和功能設計。界面采用圖形界面,主要用到一些Swing組件并需要設計界面布局。客戶端包括登錄界面、主窗口界面。服務器端只有一個窗口界面。在設計功能時,客戶端具有的功能包括:發送聊天信息,顯示聊天記錄,上傳、下載文件、實時顯示聊天室在線人員列表、退出聊天室等。服務器端具有的功能包括:啟動服務器、接受客戶端的連接、啟動線程為客戶端提供服務、轉發信息(客戶端發送的聊天信息實際上是先發給服務器,然后由服務器再轉發給其他的客戶端)、統計連接到服務器的客戶端的個數、各自的信息,以及始終提供服務、繼續接收客戶端的連接、關閉服務等。本聊天室的功能模塊如圖1所示。

三、聊天室的實現

(一)服務器端的實現

在C/S結構的網絡程序中,服務器作為提供服務的進程,要始終提供服務,當它啟動后就等待客戶端的連接請求。通常一個服務器可以同時為多個客戶端提供服務,這可以通過多線程機制來實現。這種多線程的并行通信方式,可以極大提高服務器的資源利用效率,讓客戶端有更好的體驗。另外,客戶端與服務器端的通信通過Socket來實現,Socket是網絡上運行的兩個程序間雙向通信的一端,它既可以接收請求,也可以發送請求,利用它可以很方便地進行網絡數據傳輸。除此之外,服務器還需要存儲所有連接到它的客戶端,可通過集合類來存儲。這樣便于統計連接的客戶端的數量,同時實現消息的轉發。在轉發消息時,同時將消息存儲到數據庫中。

(二)客戶端的實現

在C/S結構的網絡程序中,客戶器作為請求的發出者,當向服務器端發出連接請求時,服務器給予響應。建立連接之后,客戶端就可以向服務器發送聊天消息,同時接收服務器轉發的消息。由于客戶端需要一直接收服務器轉發的消息,需要啟動一個線程來實現。客戶端在上傳、下載文件時,傳輸內容需要同發送、接收聊天消息區分開,可通過加個標識區分。在實時顯示在線人員列表時,同樣通過一個線程來實現。

四、結語

本聊天室圖形界面友好,具備聊天室基本的功能,雖然與QQ等聊天軟件尚有很大差距,但作為《Java高級編程應用》這門課的教學案例還是很不錯的。該聊天室系統綜合運用了圖形界面、多線程、網絡編程、JDBC等相關知識,是綜合程度較高的一個案例。通過該案例的開發,讓學生充分體會到所學知識的運用,進一步提高學生學習的興趣,教學效果良好。后續還可以繼續擴展該聊天室的功能,例如:實現私聊、添加頭像、添加表情等。

參考文獻:

[1]王素蘋.一種基于Java Swing的網絡聊天室的設計與實現.現代計算機:2012.07.

[2] https://blog.csdn.net/xietansheng/article/details/72814531.

作者簡介:

王海燕(1982—),碩士,山東信息職業技術學院。

主站蜘蛛池模板: 99久久国产自偷自偷免费一区| 免费播放毛片| 国产主播福利在线观看| 精久久久久无码区中文字幕| 久久国产亚洲偷自| 欧美α片免费观看| 91在线丝袜| 无码中字出轨中文人妻中文中| 久久午夜影院| 亚洲首页在线观看| 日韩欧美中文| 欧美日韩资源| 国产乱人伦AV在线A| 五月天婷婷网亚洲综合在线| 97青青青国产在线播放| 欧美成人免费一区在线播放| 成人av手机在线观看| 欧美精品另类| 91在线视频福利| 伊人无码视屏| 99久久性生片| 成人字幕网视频在线观看| 日本成人在线不卡视频| 亚洲 日韩 激情 无码 中出| 亚洲天堂日韩av电影| 麻豆AV网站免费进入| 国产又黄又硬又粗| 国产91视频观看| 亚洲欧美日韩动漫| 中国国产一级毛片| 日韩欧美国产成人| 亚洲一级毛片免费看| 99这里只有精品免费视频| 亚洲精品中文字幕无乱码| 久久国产香蕉| 无遮挡一级毛片呦女视频| 国产裸舞福利在线视频合集| 日韩精品高清自在线| 91久久国产热精品免费| 色久综合在线| 精品欧美一区二区三区在线| 亚洲国产中文欧美在线人成大黄瓜| 97se亚洲综合在线韩国专区福利| 一本视频精品中文字幕| 久久黄色一级视频| 午夜欧美理论2019理论| 欧美精品成人| 亚洲va在线∨a天堂va欧美va| 亚洲一区毛片| 香蕉视频在线观看www| 青青草原国产免费av观看| 风韵丰满熟妇啪啪区老熟熟女| 亚洲精品自在线拍| 91精品专区| 99视频全部免费| 久久女人网| 精品黑人一区二区三区| 久久伊人操| 91黄视频在线观看| 国内精品视频在线| 国产一区在线观看无码| 久久香蕉国产线| 亚洲欧美在线综合一区二区三区| 日本在线免费网站| 亚洲一区二区在线无码| 午夜精品久久久久久久无码软件| 国产在线拍偷自揄拍精品| 午夜一级做a爰片久久毛片| 国产在线精彩视频二区| 黄片在线永久| 欧美亚洲综合免费精品高清在线观看| 日韩大乳视频中文字幕| 国产精品久久久久婷婷五月| 精品国产三级在线观看| 97国内精品久久久久不卡| 91精品国产一区| 亚洲精品视频免费看| 无码 在线 在线| 久久久受www免费人成| 精品欧美一区二区三区在线| 亚洲天堂免费在线视频| 国产青青草视频|