其中afxsocketinit()函式返回乙個布林值。要想使用這個函式還需要在預編譯標頭檔案stdafx中加入#include」afxsock.h「
3、緊接著我們在cchatdlg中通過右鍵分別新增乙個成員函式initsocket和乙個成員變數m_socket(設為private)在函式initsocket()中新增如下**:bool cchatdlg::initsocket()
此段**用於建立初始化套接字。緊接著寫如下**:
sockaddr_in addrsock;
addrsock.sin_family=af_inet;
addrsock.sin_port=htons(6000);
addrsock.sin_addr.s_un.s_addr=htonl(inaddr_any);
int retval;
retval=bind(m_socket,(sockaddr*)&addrsock,sizeof(sockaddr));
if(retval==socket_error)
return true;
}此段**用於繫結。並在oninitdialog()中新增宣告initsocket()。**如下:initsocket();
4、接下來該接受資料啦,我們建立乙個執行緒專門用來接受資料,並將接受到的資料顯示在編輯框中。我應該使用執行緒建立函式createthread()。執行緒的任務是接受到資料並將其顯示因此需要兩個引數,注意到createthread()函式的第四個引數為結構體指標,因此構造乙個結構體,用此結構體傳遞這兩個引數。在cchatdlg()中新增乙個結構體構造**如下:struct recvparam
;最後這個雙引號注意不要丟掉。接著在oninitdialog()宣告並引用這個結構體**如下:recvparam *precvparam=new recvparam;
precvparam->socket=m_socket;
precvparam->hwnd=m_hwnd;//m_hwnd是每個窗體對應的控制代碼。
接著在createthread()用這個結構體當引數。**如下:
handle hthread=createthread(null,0,recvproc,(lpvoid)precvparam,0,null);
closehandle(hthread);
return true; // return true unless you set the focus to a control
}上面的這個函式createthread()的第三個引數是對應的是這個執行緒的功能函式recvproc(要不將此函式宣告為靜態的要不將其在全域性宣告)。在下面對此函式具體實現編碼如下:
dword winapi cchatdlg::recvproc(lpvoid ipparameter)
將接受過來的資料通過訊息響應使其顯示到響應的編輯框中。編輯**步驟如下:
a:在cchatdlg中定義如下:#define wm_recvdata wm_user+1
b:在下面相應的地方接著寫:afx_msg void onrecvdata(wparam wparam,lparam lparam);
c:在dodataexchange(cdataexchange *pdx)中寫入如下**:
begin_message_map(cchatdlg, cdialog)
//}afx_msg_map
on_message(wm_recvdata,onrecvdata)
end_message_map() d:
void cchatdlg::onrecvdata(wparam wparam,lparam lparam)
以上四部是乙個訊息的過程。
以上的接受端基本已經寫好了接下來該寫傳送端啦。
5、雙擊傳送按鈕自動生成乙個void cchatdlg::onbtnsend()函式其中的**如下:
void cchatdlg::onbtnsend()
以上就是實現的整個過程。
我應該對如下的一些函式記住:socket()、bind()函式中具體引數的含義、控制代碼handle和hwnd具體含義、creatthread()函式以及引數的具體含義還有其引數中的功能函式、sprintf()函式、afx_msg定義識別符號的意義、recvfrom()函式及引數、inet_ntoa()函式功能:將網路位址轉換成「.」點隔的字串格式。postmessage()函式:、mv_user所以自定義訊息的步驟:(一)先在標頭檔案中定義自己訊息的id,如 #define wm_my_first_message (wm_user + 0x001) (二)再宣告自己的訊息處理函式:afx_msg void onmyfirstmessage(); (三)在cpp檔案中新增訊息對映巨集: (四)最後定義訊息處理函式:
websocket實現乙個簡單的聊天室對話
npm install socket.io client socket是乙個高效能的伺服器框架,開發者只要實現一兩個介面,便可以開發出自己的網路應用,例如rpc服務 聊天室伺服器 手機遊戲伺服器等。koa 通過 node.js 實現了乙個十分具有表現力的 http 中介軟體框架,力求讓 web 應用...
乙個簡單聊天室的建立
經過乙個階段的asp學習,下面我們結合所學過的內容建立乙個最簡單的聊天室,雖然很簡單,但是大家可以通過他來掌握乙個聊天室建立的基本過程,並且可以不斷的完善其功能.下面介紹其主要步驟 3,最後把txtwho的內容初始化.也就是當瀏覽者輸入過一次自己的姓名以後就不用再次輸入了,為了區分每個不同的瀏覽者,...
實現乙個簡單的WebSocket聊天室
websocket 是 html5 開始提供的一種在單個 tcp 連線上進行全雙工通訊的協議。websocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在 websocket api 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以建立永續性的連線,並...