TCP協議實現的聊天室

2021-09-26 06:24:50 字數 1707 閱讀 2113

分析功能:

1、客戶端登入

(1)伺服器

1.使用迴圈一直監聽客戶端的連線

2.伺服器的收和發執行緒寫到一起–serverthread類

3.在伺服器中使用字元流進行收發,先讀客戶端登入名資料,再**出去

(2)客戶端

1.傳送資料到伺服器-----sendthread

2.接收伺服器中**的資料----recvthread

2、**

(1)伺服器

1.伺服器接收到資料,並**給除自身以外的其他使用者

2.將伺服器中連線上來的socket所在的thread用list儲存起來

3.serverthread中接收到資料後,迴圈遍歷集合的資料,並**出去

(2)客戶端

1.例如, 張三傳送一條資訊

2.客戶端收到伺服器**的的**資訊

3、私聊

(1)規則: @使用者名稱#內容----》 @zs#哈哈哈

(2)客戶端

1.例如傳送內容: @zs#哈哈哈

2.客戶端收到伺服器中**的私發的資料

(3)伺服器

1.接收到資料後,拆分資料,獲取到使用者名稱和內容

2.並將拆分的內容傳送給獲取到的使用者

3.迴圈遍歷集合,判斷執行緒名與指定使用者名稱一致,則發乙份出去(登入時要設定執行緒名)

4、客戶端退出

(1)在伺服器中捕獲住了客戶端的退出

(2)並將當前使用者退出訊息**給其他客戶端

(3)並在集合中將當前執行緒物件移除

實現**:

public class tcpclient 

}public class tcpserver }}

public class serverthread extends thread

@override

public void run() else

}} catch (ioexception e) finally

}private void sendtoone(string msg) }}

private void sendtoother(string msg) }}

private void sendmsg(string msg) catch (ioexception e)

} private void welcome() catch (ioexception e) }}

public class readthread extends thread

@override

public void run()

} catch (ioexception e) finally

}}public class writethread extends thread

@override

public void run()

} catch (ioexception e) finally

}}

關閉資源的工具類:

public class closeutils  catch (ioexception e) 

}} }

}

TCP多人聊天室實現簡單思路

1.1 分析客戶端 功能 1.資料傳送 2.資料接收 技術 1.socket 2.輸入流和輸出流 3.多執行緒,客戶端功能模組有兩個執行緒 聊天 1.群聊 2.私聊 私聊字首 伺服器使用者id號 msg 伺服器功能 1.資料 2.使用者註冊 技術 1.serversocket 2.每乙個使用者對應的...

基於C 實現TCP聊天室功能

tcpserver.cpp tcpserver.cpp defines the entry point for the console application.include stdafx.h include include include using namespace std pragma co...

php html實現聊天室

1.最簡單的方式 不斷重新整理頁面 資料庫建立 create table chat chattime datetime,nick char 10 words char 150 login.php 請輸入您的暱稱 cdisplay.php conn mysql connect 127.0.0.1 ro...