寫在前面:
可能是臨近期末了,各種課程設計接踵而來,最近在csdn上看到2個一樣問答(問題A,問題B),那就是編寫一個基于socket的聊天程序,正好最近剛用socket做了一些事,出于興趣,自己抽了幾個晚上的空閑時間敲了一個,目前僅支持單聊,群聊,文件傳送這些功能。首先,貼出一個丑丑的程序圖(UI是用java swing寫的,這個早就忘光了,無奈看著JDK的API寫了一個),如下圖:
服務端設計:
服務端主要有兩個操作,一是阻塞接收客戶端的socket并做響應處理,二是檢測客戶端的心跳,如果客戶端一段時間內(nèi)沒有發(fā)送心跳則移除該客戶端,由Server創(chuàng)建ServerSocket,然后啟動兩個線程池去處理這兩件事(newFixedThreadPool,newSch