9299.net
大学生考试网 让学习变简单
当前位置:首页 >> 工学 >>

计算机网络基础实验指导书

计算机网络基础实验指导书


《计算机网络基础》
实验指导书 苏志同 实验一
一、实验目的
该实验通过访问 Internet 搜索有关介绍网卡、集线器、交换机、路由器、 各种传输媒体的类型、功能、特点和价格等,了解计算机网络的基本结构,掌握 各网络部件在计算机网络中的作用。

熟悉常见网络产品(2 学时)

二、实验环境
已安装好的 WIN2000 Professical(Server、NT)操作系统,并可访问因特 网。

三、实验内容
1、在 IE 地址栏中输入 www.google.com 或 www.baidu.com 等搜索引擎网址; 2、上网查询网络适配器的类型、功能、特点和价格; 3、上网查询集线器(Hub)的类型、功能、特点和价格; 4、上网查询交换机(Switch)的类型、功能、特点和价格; 5、上网查询路由器(Router)的类型、功能、特点和价格; 6、上网查询各种传输媒体的类型、功能、特点和价格; 7、分析各网络部件在计算机网络中的作用。

实验二

Windows2000 环境下的服务器配置(4 学时)

一、实验目的
本实验是为了让学生学习 DHCP(动态主机配置协议) 、DNS(域名服务) 、 IIS、FTP 服务的有关知识。

二、实验环境

1、运行 Windows 2000 Server 的计算机并且已经安装了 DHCP、DNS、IIS; 2、一台 Win2000 客户机; 3、服务器和客户机之间可以正常网络连接,并可以正常联入 Internet。

三、实验内容
1、配置 DHCP 能够自动为其他计算机分配 IP 地址和子网掩码; 2、配置 DNS 服务器 (1)创建正向搜索区域:正向搜索区域是将域名转化为 IP 地址的区域 文件; ☆管理工具中打开 DNS,点击根目录右键选择“新建区域” ; ☆在区域名中输入域名,如:stud.edu.cn; ☆在区域文件中输入文件名,如:stud.edu.cn.dns; (2)配置正向搜索区域属性; ☆右击所创建的正向搜索区域名,选择“属性” ,按需要进行设置; (3) 配置 DNS 正向搜索区域主机记录: 主机记录通过一个区域内的 IP 地址与主机名发生联系; ☆右击正向搜索区域名,选择“新建主机” ; ☆在相应的对话框输入主机名称(WWW、jxxx 等) 、IP 地址,单击添加 主机; (4)配置 DNS 正向搜索区域别名记录:别名记录是指向主机的官方域 名的别名,这些记录可以允许使用不止一个名称指向同一个主机; ☆右击正向搜索区域名,选择“新建别名” ; (5)创建一个反向搜索区域并设置属性:反向搜索区域是指将 IP 地址 转化为域名的区域文件; (6)使用 DNS 名字访问计算机。 3、配置 IIS 服务器 (1)配置 WWW 服务; (2)利用相应工具,建立个人的网站,将个人网站在 Internet 上发布; (3)配置 FTP 服务,同学之间能够实现文件传送功能。

实验三
一、实验目的

基本 Winsock 编程(6 学时)

1、了解 Winsock 编程原理; 2、熟悉 Windows 网络编程接口;

二、实验环境
Visual C 或 C、VB 等。

三、实验内容与要求
编写一个简单的 C/S 通讯程序。 具体要求: (1)使用 WINSOCK 通讯:WINSOCK 是 Windows Sockets API 的简称, 已经成为 Windows 广泛应用的、开放的、支持多种协议、事实上的网络编程接 口标准。 (2)客户方程序与服务方程序位于两台不同的机器上,在客户方通过指定 服务方的 IP 地址和端口号来通讯; (3)服务器程序,始终处于监听状态,具有连续接收客户发送的信息的能 力(发送的信息任意) 。 四、聊天程序核心代码(可参考) 1、服务器端代码 开启服务器功能: void OnServerOpen() //开启服务器功能 { WSADATA wsaData; int iErrorCode; char chInfo[64]; if (WSAStartup(WINSOCK_VERSION, &wsaData)) //调用 Windows Sockets DLL { MessageBeep(MB_ICONSTOP); MessageBox("Winsock 无法初始化!", AfxGetAppName(), MB_OK|MB_ICONSTOP); WSACleanup(); return; }

else WSACleanup(); if (gethostname(chInfo, sizeof(chInfo))) { ReportWinsockErr("\n 无法获取主机!\n "); return; } CString csWinsockID = "\n==>>服务器功能开启在端口:No. "; csWinsockID += itoa(m_pDoc->m_nServerPort, chInfo, 10); csWinsockID += "\n"; PrintString(csWinsockID); //在程序视图显示提示信息的函数,读者 可自行创建 m_pDoc->m_hServerSocket=socket(PF_INET, SOCK_STREAM, DEFAULT_PROTOCOL); //创建服务器端 Socket,类型为 SOCK_STREAM,面向连接的通信 if (m_pDoc->m_hServerSocket == INVALID_SOCKET) { ReportWinsockErr("无法创建服务器 socket!"); return;} m_pDoc->m_sockServerAddr.sin_family = AF_INET; m_pDoc->m_sockServerAddr.sin_addr.s_addr = INADDR_ANY; m_pDoc->m_sockServerAddr.sin_port = htons(m_pDoc->m_nServerPort); if (bind(m_pDoc->m_hServerSocket, (LPSOCKADDR)&m_pDoc->m_sockServerAddr, sizeof(m_pDoc->m_sockServerAddr)) == SOCKET_ERROR) //与选 定的端口绑定 {ReportWinsockErr("无法绑定服务器 socket!"); return;} iErrorCode=WSAAsyncSelect(m_pDoc->m_hServerSocket,m_hWnd, WM_SERVER_ACCEPT, FD_ACCEPT); //设定服务器相应的网络事件为 FD_ACCEPT,即连接请求, // 产生相应传递给窗口的消息为 WM_SERVER_ACCEPT if (iErrorCode == SOCKET_ERROR) { ReportWinsockErr("WSAAsyncSelect 设定失败!"); return;} if (listen(m_pDoc->m_hServerSocket, QUEUE_SIZE) == SOCKET_ERROR) //开始监听客户连接请求 {ReportWinsockErr("服务器 socket 监听失败!"); m_pParentMenu->EnableMenuItem(ID_SERVER_OPEN, MF_ENABLED); return;} m_bServerIsOpen = TRUE; //监视服务器是否打开的变量 return; } 响应客户发送聊天文字到服务器:

ON_MESSAGE(WM_CLIENT_READ, OnClientRead) LRESULT OnClientRead(WPARAM wParam, LPARAM lParam) { int iRead; int iBufferLength; int iEnd; int iRemainSpace; char chInBuffer[1024]; int i; for(i=0;(i<MAXCLIENT)&&(M_ACLIENTSOCKET[I]!=WPARAM);I++) //MAXClient 是服务器可响应连接的最大数目 {} if(i==MAXClient) return 0L; iBufferLength = iRemainSpace = sizeof(chInBuffer); iEnd = 0; iRemainSpace -= iEnd; iBytesRead = recv(m_aClientSocket[i], (LPSTR)(chInBuffer+iEnd), iSpaceRemaining, NO_FLAGS); //用可控缓冲接收函数 recv()来接收字符 iEnd+=iRead; if (iBytesRead == SOCKET_ERROR) ReportWinsockErr("recv 出错!"); chInBuffer[iEnd] = '\0'; if (lstrlen(chInBuffer) != 0) {PrintString(chInBuffer); //服务器端文字显示 OnServerBroadcast(chInBuffer); //自己编写的函数,向所有连接 的客户广播这个客户的聊天文字 } return(0L); } 对于客户断开连接, 会产生一个 FD_CLOSE 消息, 只须相应地用 closesocket() 关闭相应的 Socket 即可,这个处理比较简单。 2、客户端代码 连接到服务器: void OnSocketConnect() { WSADATA wsaData; DWORD dwIPAddr; SOCKADDR_IN sockAddr; if(WSAStartup(WINSOCK_VERSION,&wsaData)) //调用 Windows Sockets DLL {MessageBox("Winsock 无法初始化!",NULL,MB_OK); return; } m_hSocket=socket(PF_INET,SOCK_STREAM,0); //创建面向连接的 socket

sockAddr.sin_family=AF_INET; //使用 TCP/IP 协议 sockAddr.sin_port=m_iPort; //客户端指定的 IP 地址 sockAddr.sin_addr.S_un.S_addr=dwIPAddr; int nConnect=connect(m_hSocket,(LPSOCKADDR)&sockAddr,sizeof(sockAddr)); //请求连接 if(nConnect) ReportWinsockErr("连接失败!"); Else MessageBox("连接成功!",NULL,MB_OK); int iErrorCode=WSAAsyncSelect(m_hSocket,m_hWnd,WM_SOCKET_READ,FD_READ); //指定响应的事件,为服务器发送来字符 if(iErrorCode==SOCKET_ERROR) MessageBox("WSAAsyncSelect 设定失败!"); }


推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com