基于TCPIP協(xié)議的CS通信

基于TCPIP協(xié)議的CS通信

ID:41582373

大?。?8.39 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2019-08-28

基于TCPIP協(xié)議的CS通信_(tái)第1頁(yè)
基于TCPIP協(xié)議的CS通信_(tái)第2頁(yè)
基于TCPIP協(xié)議的CS通信_(tái)第3頁(yè)
基于TCPIP協(xié)議的CS通信_(tái)第4頁(yè)
資源描述:

《基于TCPIP協(xié)議的CS通信》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、系統(tǒng)功能描述:在同一臺(tái)機(jī)器上,首先啟動(dòng)服務(wù)器,然后啟動(dòng)客戶(hù)端,服務(wù)器和客戶(hù)端都是基于對(duì)話(huà)框的應(yīng)用程序!(1)?當(dāng)客戶(hù)端啟動(dòng)后,向服務(wù)器發(fā)出連接請(qǐng)求,服務(wù)器接到請(qǐng)求后向客八端發(fā)送“連接請(qǐng)求已被接受”的應(yīng)答消息,然后在服務(wù)器對(duì)話(huà)框里的編輯框中顯示剛才請(qǐng)求連接的客戶(hù)端的IP和請(qǐng)求發(fā)生的時(shí)間。注:對(duì)客戶(hù)端用戶(hù)發(fā)送的數(shù)據(jù)暫時(shí)不進(jìn)行處理。(2).在客戶(hù)端,先顯示服務(wù)器的提示消息,然后將B己發(fā)送的內(nèi)容也顯示在客戶(hù)端對(duì)話(huà)框的編輯框中。問(wèn)題描述:啟動(dòng)服務(wù)器和客戶(hù)端,當(dāng)客戶(hù)端發(fā)送數(shù)據(jù)后服務(wù)器沒(méi)一點(diǎn)反應(yīng)??上н@里不能粘貼木地圖片,我想把那兩個(gè)對(duì)話(huà)框的圖發(fā)上來(lái)的……(一)

2、客戶(hù)端的發(fā)送按鈕響應(yīng)函數(shù):voidCClientDlg::OnClientsend(){〃創(chuàng)建客戶(hù)端套接字SOCKETsockClicnt=sockct(AF_INET,SOCK_STREAM,0);〃目標(biāo)服務(wù)器地址SOCKADDRJNaddrSrv;addrSrv.sin_addr.S_un.S_addr=inct_addr("127.0.0.1");addrSrv.sin_family=AF_INET;addrSrv.sin_port=50000;〃向服務(wù)器發(fā)出連接請(qǐng)求conncct(sockClicnt,(sockaddr*)&addrSrv

3、,sizcof(addrSrv));〃接收服務(wù)器的捉示消息charrecvBuf[45J;recv(sockClient,recvBuf,45,0);〃在客戶(hù)端信息框中顯示服務(wù)器應(yīng)答信息SetDlgItemText(IDC_EDIT1,recvBuf);〃向服務(wù)器發(fā)送數(shù)據(jù)charsendBuf[50];GetDlgItemText(lDC_SENDTEXT,sendBuf,50);send(sockClient,sendBuf,strlen(sendBuf)+l,0);〃在客戶(hù)端顯示發(fā)送的信息CStringclientStr;GetDlgItemT

4、ext(lDC_EDIT1,clientStr);clicntStr+=nrH;CStringstrTemp;GetDlgItemText(lDC_SENDTEXT,strTemp);clientStr+=strTemp;SctDlgItcmTcxt(IDC_EDITl,clicntStr);〃清空發(fā)送框內(nèi)容SetDlgItemText(IDC_SENDTEXT,nn);}(二)服務(wù)器1.〃創(chuàng)建并初始化套接字BOOLCScrvcrDlg::InitSockct(){〃創(chuàng)建套接字m_socket=socket(AF_INET,SOCK_STRE

5、AM,0);structsockaddr_inaddrSrv;addrSrv.sin_family=AF_INET;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_port=htons(50000);〃綁定套接字bind(m_socket,(sockaddr*)&addrSrv,sizeof(addrSrv));〃監(jiān)聽(tīng)listen(m_socket,5);returnFALSE;}2.在CServerDlg::OnInitDialog()函數(shù)的返回語(yǔ)句詢(xún)加了這些初始化語(yǔ)句Init

6、Socket();〃調(diào)用上面的套接字初始化函數(shù)RECVPARAM*pRecvParam=newRECVPARAM;//RECVPARAM是一個(gè)結(jié)構(gòu)體,有兩個(gè)成員,用來(lái)向線(xiàn)程函數(shù)提供參數(shù)pRecvParam->sock=m_socket;pRccvParam->hwnd=m_hWnd;//創(chuàng)建接收線(xiàn)程HANDLEhThrcad=CrcatcThrcad(NULL,0,RccvProc,(LPVOID)pRccvParam,0,NULL);〃關(guān)閉接收線(xiàn)程,釋放引用計(jì)數(shù)CloseHandle(hThread);2.這個(gè)就是接收客戶(hù)端請(qǐng)求的線(xiàn)程DWORDW

7、INAPICScrvcrDlg::RccvProc(LPVOIDIpParamctcr){〃獲取主線(xiàn)程傳遞的套接字和窗口句柄SOCKETsock=((RECVPARAM*)lpParameter)->sock;HWNDhwnd=((RECVPARAM*)lpParameter)->hwnd;deleteIpParamctcr;〃保存客戶(hù)端地址structsockaddr_inaddrClient;intlen=sizeof(sockaddr);〃等待客八端請(qǐng)求到來(lái)while(1){SOCKETsockConn=accept(sock,(sockad

8、dr*)&addrClient,&len);〃向客戶(hù)端發(fā)送請(qǐng)求已經(jīng)接受的消息charsendBuf[45]=MYourre

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。