版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 簡單TCP通信程序設(shè)計實(shí)驗報告 學(xué) 校:華中科技大學(xué) 學(xué) 院: 姓 名: 學(xué) 號: 同組人: 一, 實(shí)驗?zāi)康?初步掌握C+ 語言TCP/IP 通信程序的設(shè)計。二, 實(shí)驗環(huán)境 1、Windows 7 操作系統(tǒng)。2、 編程工具:Visual Studio 2010。三,實(shí)驗框圖WinSock 通過流式套接字(SOCK_STREAM)提供TCP 服務(wù)。通常服務(wù)器進(jìn)程先啟動,等待客戶端的連接請求。其基基通信過程如下圖1所示。四,實(shí)驗內(nèi)容與步驟(server) 1,加載WinSock動態(tài)鏈接庫 函數(shù)原型: int WSAStartup(WORD wVersionRequest
2、ed, LPWSADATA lpWSAData); 程序代碼: /加載WinSock.DllWSADATA wsaData;WORD wVersionRequested = MAKEWORD(2, 2);if (WSAStartup(wVersionRequested, &wsaData) != 0)/ WinSock 初始化錯誤處理代碼 2,創(chuàng)建套接字 創(chuàng)建套接字的實(shí)質(zhì)是請求操作系統(tǒng)分配通信所需要的資源(包括存儲空間、網(wǎng)絡(luò)資源、CPU 時間等),用一個稱為套接字描述符(socket descriptor)的整數(shù)表示。 函數(shù)原型: SOCKET socket(int af, int t
3、ype, int protocol); 程序代碼: /創(chuàng)建套接字 SOCKET sock_client;if (sock_client= socket(AF_INET, SOCK_STREAM, 0) = INVALID_SOCKET)cout << "創(chuàng)建套接字失?。″e誤代碼:"<< WSAGetLastError() << endl;WSACleanup();return 1;3,建立連接 客戶端則在創(chuàng)建套接字后,調(diào)用connect 函數(shù)發(fā)起連接建 立請求。 函數(shù)原型: int connect(SOCKET s, const stru
4、ct sockaddr * name, int namelen); 程序代碼: /建立連接struct sockaddr_in server_addr; / 用于存放要連接服務(wù)器的地址int addr_len = sizeof(server_addr);/ 填寫服務(wù)器地址memset(void *)&server_addr, 0, sizeof(struct sockaddr_in);server_addr.sin_family = AF_INET;server_addr.sin_port = htons(65432);server_addr.sin_addr.s_addr = ine
5、t_addr(""); / 服務(wù)器IP 地址/ 與服務(wù)器建立連接if (connect(sock_client, (struct sockaddr *)&server_addr, sizeof(structsockaddr_in) != 0)cout << "連接失??!錯誤代碼:" << WSAGetLastError() << endl;closesocket(sock_client);WSACleanup();return 1;else/接收數(shù)據(jù) 4,發(fā)送和接收數(shù)據(jù) 發(fā)送和接收數(shù)據(jù)分別使用
6、send 和recv 函數(shù)。(1)recv 函數(shù)原型: int recv(SOCKET s, const char * buf, int len, int flags);程序代碼:/接收數(shù)據(jù)char msgbuffer255;int size;if (size = recv(sock_client, msgbuffer, sizeof(msgbuffer), 0) = SOCKET_ERROR)cout << "接收數(shù)據(jù)失敗;錯誤代碼:" << WSAGetLastError() << endl;elsecout << &qu
7、ot;接收到的數(shù)據(jù):" << msgbuffer << endl;/顯示從服務(wù)端接收的數(shù)據(jù) (2)send 函數(shù)原型: int send(SOCKET s, const char * buf, int len, int flags);程序代碼:/發(fā)送數(shù)據(jù)char msgbuf = "The message to be sent."int size;if (size = send(sock_client, msgbuf, sizeof(msgbuf), 0) = SOCKET_ERROR)cout << "發(fā)送數(shù)據(jù)失?。诲e誤代碼:" << WSAGetLastError() << endl;elseclosesocket(sock_client); WSACleanup();5,關(guān)閉套接字 通信完成后,程序退出前應(yīng)關(guān)閉套接字。 函數(shù)原型: int closesocket(SOCKET s);程序代碼: closesocket(newsock); WSACleanup();五,實(shí)驗結(jié)果, 1,服務(wù)端調(diào)試成功exe文件截圖: 2,客戶端調(diào)試成功exe文件截圖六,實(shí)驗總結(jié) 1,編寫client程序時遇到的問題及解決方法 (1)在編寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024窗簾供應(yīng)與安裝協(xié)議模板
- 2024年智能化弱電系統(tǒng)施工協(xié)議
- 2024專業(yè)消防設(shè)施保養(yǎng)協(xié)議
- 體檢中心年底工作總結(jié)范文6篇
- 中鐵建績效考核
- 文書模板-《借款保證擔(dān)保合同》
- 2024年二手房貸款業(yè)務(wù)協(xié)作協(xié)議樣本
- 化普通商品購買:2024協(xié)議格式
- 2024年非公開股權(quán)轉(zhuǎn)讓協(xié)議范本
- 2024住宅小區(qū)物業(yè)經(jīng)理聘任協(xié)議
- 心理健康與職業(yè)生涯第11課《主動學(xué)習(xí)高效學(xué)習(xí)》第一框教案《做主動的學(xué)習(xí)者》
- 專題08 上海卷作文(課件)-2022年高考語文作文評析+素材拓展+名師下水文
- 建筑垃圾清運(yùn)及處置 投標(biāo)方案(技術(shù)方案)
- 圍手術(shù)期管理規(guī)范
- 2024年-會計師事務(wù)所審計保密協(xié)議
- 《中外舞蹈史》考試復(fù)習(xí)題庫(含答案)
- GB/T 19923-2024城市污水再生利用工業(yè)用水水質(zhì)
- 大疆無人機(jī)農(nóng)用版培訓(xùn)課件
- Unit8WXYZ(課件)牛津自然拼讀Level1
- 《壺口瀑布》課件
- 管理者與員工關(guān)系培訓(xùn)
評論
0/150
提交評論