真的很平平無奇的socket聊天室呢!

鈞桐發表於2020-12-07

寫在前面

研一修了計算機網路,老師蠻厲害的。學到了很多之前不知道的知識,除了上課,我們還進行了論文的彙報,除此之外,我們還需要完成一個socket程式設計 (用來更好認識三次握手,四次揮手,這個計算機通訊的過程)。那麼,這篇文章就是作業socket程式設計的展示啦!!!

兩種語言

socket初識之c++

這是之前寫的一篇博文,是用c++的程式設計,在VM虛擬機器上實現了socket的程式設計
初識socket程式設計—教你正確分手哦!!!

socket聊天室之java

IDEA上實現

IDEA_java程式碼框架

在這裡插入圖片描述

class作用
Main程式的傀儡,沒幹實事
ClientInfo客戶端資訊類,包括客戶的socket和姓名
ClientManage客戶端資訊控制類,用來set和return訊息
ClientProcess完成聊天室的主要功能,有初始化介面和登入,登出控制,資訊傳送
ServerManage伺服器端控制類,伺服器端的控制命令的實現,如 shutdown,showallclientinfo
TelnetServer完成Telnet的呼叫,並控制輸入相應的連線語句
staticContent控制登入的賬號密碼的查詢
login.txt儲存登入的賬號和密碼

效果展示

服務端執行的輸入

在這裡插入圖片描述
因為我叫41,所以聊天室的埠號設定為了41

telnet 192.168.17.1 41

這個就是連線聊天室的命令。
這個命令可以在cmd,或者是虛擬機器的Terminal或者是MobaXterm
的Terminal
中進行連線。
注意在cmd中要呼叫telnet還需要在控制程式中啟用telnet功能,這裡就不放教程了,百度一下,很簡單的
本篇部落格主要是在MobaXterm中進行聊天室執行!!!
讓我們來看看剩下的效果吧!

開打MobaXterm的介面

在這裡插入圖片描述

使用命令成功連線,然後我試試賬號密碼的查詢功能

在這裡插入圖片描述

正確的賬號是zhangsan 密碼是123,下面是成功登入的畫面

先是一個愛心,讓人猝不及防呀

在這裡插入圖片描述

接著就是主題的切入,太棒了呀!

在這裡插入圖片描述

我們再多連線幾個賬號進來進行尬聊

在這裡插入圖片描述
一個人用多個賬號連線,李四搞成張三了,我暈!

使用server端命令的效果

showclientnum
showallclientinfo

在這裡插入圖片描述

最後展示

client端的logout等出

在這裡插入圖片描述

server端關閉,聊天室的關閉

在這裡插入圖片描述
server端shutdown後,其他使用者的連線狀態會自動斷開。無法進行聊天,真的是做到了收放自如呢!!!

相關文章