我有典型的聊天應用程序。聊天應用程序,如何避免混淆輸出
客戶端是使用兩個線程實現的。
線程1
do {
show menu
read option
case option
1: option1
2: option2
.
.
.
5:end
end case
while (!end)
線程2:
do {
read message from socket
display message
while (!end)
的一個問題是線程1是快,所以處理。第選項後,它再次顯示線程2之前的菜單可以顯示它的消息。 我已經解決了這個問題,把Thread1睡了1000毫秒,但不知道是否有更好的方法來做到這一點。
另一個是:當客戶端什麼都不做時,屏幕上只有一條消息,要求處理一個選項。如果另一個客戶端向他發送了一條消息,則此消息在Promt之後顯示,因此信息很混亂:這是客戶端從另一個客戶端收到消息後會看到的內容的示例。
1.- Print users conected
2.- Send message to all
3.- Send message to a user
4.- Quit
Choose an option: Message received from user "david": hello!
有什麼辦法可以解決這個問題嗎?
什麼是您的用戶界面?從描述中可以看出它可能是基於控制檯的。編輯:顯然是如此。 – Dan 2010-01-21 23:31:31
上週我遇到了這個問題,當時我還在試驗。只需使用swing創建或借用一個簡單的gui。有一個用於顯示文本的框和一個用於發送文本的框。 GL – 2010-01-21 23:57:52
是的界面是基於控制檯的。 這是我的Java課程的應用。它會按原樣通過考試,但我希望能使其工作至少體面。 – 2010-01-22 00:41:53