C 多執行緒匿名聊天室(控制台)

2021-10-06 09:30:07 字數 1648 閱讀 5553

anonymous chat room

匿名聊天室

有client可以在此聊天室暢聊

每個ip都會自動生成一串數字,也就是說每個的id

無需註冊登入

伺服器能接受客戶端資訊,並把資訊**給其他客戶端

客戶端輸入指令獲得許可權

退出許可權模式

許可權功能比較容易寫,有時間再補充

#include

#include

#include

分別封裝了聊天室伺服器chat_server類,client類,user類

實現都分別在各自的cpp裡

基於winsocket的tcp匿名多人聊天室(控制台)

用本機ip測試過c/s能完成通訊

理論上換個有公網ip的windows伺服器就能跑我這破程式

本篇不介紹如何使用winsocket的api

綁好伺服器ip和port,啟動套接字,connect伺服器,另開乙個執行緒專門接受其他客戶端的發言(通過伺服器中轉),主線程在聊天室暢聊

//客戶端另開執行緒專門接受伺服器的**

thread recv_server_thread

(&client::from_server_recv_message,

this

);

綁好ip和port到socket,然後監聽有沒有客戶端連線,如果有連線,新開執行緒接待客戶端,乙個執行緒對應乙個客戶端

thread work_thread

(&chat_server::create_client_thread,

this

,client_socket)

;//分離執行緒,每乙個執行緒單獨對每乙個客戶端服務

work_thread.

detach()

;

定義乙個類函式

bool chat_server::

send_message_to_other_user

(socket speak_client,

char

* buffer)

speak_client發言客戶端套接字

buffer

發言資訊

定義乙個套接字vector容器,專門儲存每個客戶端的socket,遍歷陣列給個客戶端傳送訊息

if

(online_people >1)

}}}else

return

true

;//傳送成功

class

user

;

show_speak_time_and_id函式就是類似聊天軟體訊息的格式仿照

例:id *** 2020.1.1

本篇僅提供大概思路與與一些功能介紹,原始碼在github上

待續…

多執行緒聊天室的實現 C

使用mfc進行網路程式設計,實現多執行緒聊天室 1.mfc網路程式設計要包含庫檔案 include 可以在stdafx.h中包含此檔案 以下是主要 實現部分 1.首先編寫初始化套接字的函式 名稱 initstocket 功能 初始化套接字 bool cudpchatdlg initsocket so...

C Socket 同步 多執行緒 聊天室

多執行緒,沒有自己寫執行緒池,是使用系統執行緒池來管理的 demo寫的比較亂 server using system using system.collections.generic using system.text using system.net using system.net.socket...

Linux下c語言TCP多執行緒聊天室

開發環境 linux ubuntu 12.04 gcc 編譯 gcc server.c lpthread std gnu99 o s gcc client.c lpthread std gnu99 o c 執行服務端 執行2個客戶端 其中乙個客戶端傳送訊息 互相傳送 整體效果圖 客戶端傳送 quit...