資源簡介
<計算機網絡實驗>
基于TCP的網絡聊天室的設計 -實驗指導
一、實驗目的
1.掌握通信規范的制定及實現。
2.練習較復雜的網絡編程,能夠把協議設計思想應用到現實應用中。
二、實驗內容和要求
1.進一步熟悉VC++6編程環境;
2.利用VC++6進行較復雜的網絡編程,完成網絡聊天室的設計及編寫;
三、實驗(設計)儀器設備和材料
1.計算機及操作系統:PC機,Windows;
2.網絡環境:可以訪問互聯網;
四、 TCP/IP程序設計基礎
基于TCP/IP的通信基本上都是利用SOCKET套接字進行數據通訊,程序一般分為服務器端和用戶端兩部分。設計思路(VC6.0下):
第一部分 服務器端
一、創建服務器套接字(create)。
二、服務器套接字進行信息綁定(bind),并開始監聽連接(listen)。
三、接受來自用戶端的連接請求(accept)。
四、開始數據傳輸(send/receive)。
五、關閉套接字(closesocket)。
第二部分 客戶端
一、創建客戶套接字(create)。
二、與遠程服務器進行連接(connect),如被接受則創建接收進程。
三、開始數據傳輸(send/receive)。
四、關閉套接字(closesocket)。
CSocket的編程步驟:(注意我們一定要在創建MFC程序第二步的時候選上Windows Socket選項,其中ServerSocket是服務器端用到的,ClientSocket是客戶端用的。)
(1)構造CSocket對象,如下例:
CSocket ServerSocket;
CSocket ClientSocket;
(2)CSocket對象的Create函數用來創建Windows Socket,Create()函數會自行調用Bind()函數將此Socket綁定到指定的地址上面。如下例:
ServerSocket.Create(823); //服務器端需要指定一個端口號,我們用823。
ClientSocket.Create(); //客戶端不用指定端口號。
(3)現在已經創建完基本的Socket對象了,現在我們來啟動它,對于服務器端,我們需要這個Socket不停的監聽是否有來自于網絡上的連接請求,如下例:
ServerSocket.Listen(5);//參數5是表示我們的待處理Socket隊列中最多能有幾個Socket。
(4)對于客戶端我們就要實行連接了,具體實現如下例:
ClientSocket.Connect(CString SerAddress,Unsinged int SerPort);//其中SerAddress是服務器的IP地址,SerPort是端口號。
(5)服務器是怎么來接受這份連接的呢?它會進一步調用Accept(ReceiveSocket)來接收它,而此時服務器端還須建立一個新的CSocket對象,用它來和客戶端進行交流。如下例:
CSocket ReceiveSocket;
ServerSocket.Accept(ReceiveSocket);
(6)如果想在兩個程序之間接收或發送信息,MFC也提供了相應的函數。如下例:
ServerSocket.Receive(String,Buffer); //String是你要發送的字符串,Buffer是發送字符串的緩沖區大小。ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的緩沖區大小。

代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????4447242??2018-11-21?21:11??.rar
-----------?---------??----------?-----??----
?????文件?????4447242??2018-11-21?21:11??.rar
- 上一篇:基于OPNET的TCP協議研究與仿真論文
- 下一篇:C++小型回合制游戲的雛形
評論
共有 條評論