多執行緒聊天室的實現 C

2021-06-03 21:40:41 字數 1374 閱讀 7030

使用mfc進行網路程式設計,實現多執行緒聊天室

1.mfc網路程式設計要包含庫檔案 #include ,可以在stdafx.h中包含此檔案

以下是主要**實現部分

1.首先編寫初始化套接字的函式

//名稱:initstocket//

//功能:初始化套接字//

///bool cudpchatdlg::initsocket()

sockaddr_in addrsock;

addrsock.sin_addr.s_un.s_addr=htonl(inaddr_any);

addrsock.sin_family=af_inet;

addrsock.sin_port=htons(6000);

int retval;

retval=bind(m_socket,(sockaddr*)&addrsock,sizeof(sockaddr));

if(socket_error==retval)

return true;

}2.在dlg類中的oninitdialog類中呼叫初始化函式,並建立多執行緒。在oninitdialog的return true之前加上如下**

initsocket();

recvparam *precvparam=new recvparam;

precvparam->hwnd=m_hwnd;

precvparam->sock=m_socket;

handle hthread=createthread(null,0,recvfun,(lpvoid)precvparam,0,null);//建立多執行緒

closehandle(hthread);

3.建立多執行緒時的執行緒函式是recvfun,所以現在應該實現這個函式,具體的**如下,格式不會寫的看前兩篇文章,或者自己查閱msdn的createthread也是可以的,具體**如下

///名稱:recvfun//

//功能:執行緒函式,接收聊天資訊並將資訊處理//

dword winapi cudpchatdlg::recvfun( lpvoid lpparameter)

return 0;

}4.訊息響應函式

///名稱:onrecvdata//

//功能:訊息響應函式,將聊天資訊顯示在編輯框裡//

lresult cudpchatdlg::onrecvdata(wparam wparam,lparam lparam)

6.實現傳送按鈕的功能

///名稱:onbnclickbtnsend()//

//功能:獲取ip位址,並傳送訊息//

void cudpchatdlg::onbnclickedbtnsend()

最後的執行結果如下圖所示。步驟可能不是太詳細,時間關係,請見諒

C 基於socket多執行緒實現網路聊天室

1.實現 2.聊天室服務端 tcp server chat.cpp include winsock2的標頭檔案 include pragma comment lib,ws2 32.lib using namespace std stdcall的執行緒處理函式 dword winapi threadf...

C Socket 同步 多執行緒 聊天室

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

python3實現多執行緒聊天室

使用python3建立多執行緒聊天室,供大家參考,具體內容如下 import threading i程式設計客棧mport socket socket udpsocket none 計數器 num 1 1.建立接受,傳送方法 def inmessage global num while true 等...