目標
實現步驟
gui介面讀者可以自行複製使用。
登陸輸入服務端ip和使用者名稱後,要請求與服務端的登陸,然後立即為當前客戶端分配乙個讀執行緒處理客戶端的讀資料訊息。因為客戶端可能隨時會接收到服務端那邊**過來的各種即時訊息資訊。
客戶端登陸完成,服務端收到登陸的使用者名稱後,會立即發來最新的使用者列表給客戶端更新。
**實現
客戶端主體**
public
class
clientchat
implements
actionlistener
private
void
initview()
private
void
displaychatview()
private
void
displayloginview()
private
static
void
setwindowcenter
(jframe frame,
int width ,
int height,
boolean flag)
@override
public
void
actionperformed
(actionevent e)
\.\d\.\d\.\d\
if(ip==null ||
!ip.
matches
("\\d\\.\\d\\.\\d\\.\\d"))
else
if(name==null ||
!name.
matches
("\\s"))
if(!msg.
equals(""
))else
catch
(exception e1)
}break
;case
"取消"
:/** 退出系統 */
system.
exit(0
);break
;case
"傳送"
:break;}
}}
客戶端socket處理執行緒:
public
class
clientreader
extends
thread
@override
public
void
run(
)else
if(flag ==2)
}}catch
(exception e)
}}
小結
客戶端傳送訊息邏輯
客戶端傳送群聊訊息,@訊息,以及私聊訊息。
實現步驟
**實現
客戶端主體**:
public
class
clientchat
implements
actionlistener
private
void
initview()
private
void
displaychatview()
private
void
displayloginview()
private
static
void
setwindowcenter
(jframe frame,
int width ,
int height,
boolean flag)
@override
public
void
actionperformed
(actionevent e)
\.\d\.\d\.\d\
if(ip==null ||
!ip.
matches
("\\d\\.\\d\\.\\d\\.\\d"))
else
if(name==null ||
!name.
matches
("\\s"))
if(!msg.
equals(""
))else
catch
(exception e1)
}break
;case
"取消"
:/** 退出系統 */
system.
exit(0
);break
;case
"傳送"
:// 得到傳送訊息的內容
string msgsend = smssend.
gettext()
.tostring()
;if(!msgsend.
trim()
.equals(""
))} dataoutputstream dos =
newdataoutputstream
(socket.
getoutputstream()
);dos.
writeint
(flag)
;// **訊息 傳送給所有人
dos.
writeutf
(msgsend);if
(flag ==3)
dos.
flush()
;}catch
(exception e1)
} smssend.
settext
(null)
;break;}
}}
客戶端socket處理執行緒:
class
clientreader
extends
thread
@override
public
void
run(
)else
if(flag ==2)
}}catch
(exception e)
}}
小結 基於介面卡模式下的裝飾者模式
有些類被final修飾的類,想繼承進行方法的擴充,但卻不能被繼承。有些類想使用它的方法,但是卻又不想繼承,這兩種情況就是裝飾者的應用場景 本質就是將該類,成員變數的方式實現呼叫方法,並進行補充 實現 inte ce factory 基礎類實現該介面,返回 商品 的字串 final class bas...
UNIX系統下的基於TCP協議的網路通訊程式
include include include include include include ypedef struct netmessage netms typedef class netclass netc void netc netinits int port else netms.succ...
基於Java語言的C S模式通訊錄備份和查詢軟體
一 需求分析 本設計要求完成乙個基於c s模式的通訊錄備份軟體,採用c s架構,具有易用 美觀的圖形介面。1.1 伺服器端功能要求 能夠驗證客戶身份,接收客戶端的備份通訊錄的請求,能夠實時備份和更新客戶的通訊錄 加密儲存每個使用者的通訊錄 1.2 客戶端功能要求 能登陸連線到伺服器,回應 連線成功 ...