设计性综合性实验方案计算机网络与通信实验.docx
《设计性综合性实验方案计算机网络与通信实验.docx》由会员分享,可在线阅读,更多相关《设计性综合性实验方案计算机网络与通信实验.docx(16页珍藏版)》请在冰豆网上搜索。
设计性综合性实验方案计算机网络与通信实验
《计算机网络与通信实验》设计性、综合性实验方案
实验1:
网络综合服务
一、实验目的
●利用DHCP、DNS、IIS和简单网页制作的知识,建立一个网络综合服务站点,提高站点发布的综合能力。
二、实验设备
●交换机、PC机
三、实验环境
四、实验步骤
1、利用简单网页制作工具建立流媒体服务器中存在的流媒体文件信息列表页面,如index.htm,并为每项流媒体文件建立流媒体点播超链接。
2、利用DHCP实验知识,建立DHCP服务器和客户端,获取IP地址。
3、利用DNS实验知识,建立DNS域名解析。
如将站点域名映射到192.168.0.1。
4、利用IIS实验知识,建立与对应的WEB站点,用于打开第2步中的建立网页文件。
5、在工作站浏览器中输入后,显示index.htm页面。
实验2:
交换机管理
一、实验目的
●掌握交换机工作原理及Vlan的应用。
●熟悉交换机MAC地址表的配置。
●了解各种情况下MAC地址表的变化及对网络连通性的影响。
二、实验设备
●交换机、PC机
三、实验环境
四、实验步骤
1、根据网络拓扑结构完成网络设备连接,配置PC机网络参数。
2、使用showmac-address-table命令,查看MAC地址表初始信息。
3、任选PC1、PC2分别连接至交换机Fa0/1和Fa0/2端口,使用mac-address-table命令将其信息写入MAC地址表,使用showmac-address-table命令查看MAC地址表信息,使用ping命令测试PC机之间的连通性。
4、根据下表调整PC机与交换机端口的连接情况,查看MAC地址表,测试PC机连通性。
方案一
PC机
连接端口
1
PC1
Fa0/2
PC2
Fa0/1
PC3
Fa0/3
2
PC1
Fa0/5
PC2
Fa0/6
PC3
Fa0/3
3
PC1
Fa0/5
PC2
Fa0/2
PC3
Fa0/1
5、将PC1、PC2、PC3分别连接至交换机Fa0/1、Fa0/2、Fa0/3端口,使用mac-address-table命令将PC3信息写入MAC地址表,并分配至Vlan2,查看MAC地址表信息,测试PC机连通性。
6、利用交换机工作原理对各种连通性结果进行说明。
实验3:
网络模拟软件
一、实验目的
学会使用网络模拟软件BosonNetSim模拟网络环境,对网络进行配置。
●利用BosonNetworkDisgner,选择正确的网络设备,模拟网络环境。
●利用BosonNetSim,正确配置网络设备参数。
二、实验设备
●PC机
三、实验环境
●BosonNetSim软件
●
网络拓扑结构
四、实验步骤
1、利用BosonNetworkDesigner模拟网络环境。
(1)在设备列表中选择两台2621路由器、一台2950交换机、四台Windows98计算机,并拖动至绘图区域中。
(2)在设备列表中选择若干ethernet连接线,将以上设备进行连接。
(3)将设计完成的网络拓扑结构图保存为扩展名为.top的文件。
2、利用BosonNetSim对网络中的各个设备进行配置。
(1)打开BosonNetSim,导入上一步保存的扩展名为.top的文件。
(2)打开ePC,利用winipcfg和ipconfig命令对PC机网络参数进行设置。
(3)打开eRouter,对路由器按照静态路由协议或动态路由协议进行设置。
(4)打开ePC,利用ping命令测试连通性。
实验4:
网络通信程序设计
一、实验目的
用任何一种编程语言实现客户/服务器通信程序,要求:
●客户端接收键盘输入的字符串,并向服务器发送;
●服务器接收后,将字符串以逆序返回给客户端;
●客户端显示服务器返回的逆序字符串。
二、实验设备
●PC机若干
三、实验步骤
1、服务器与客户端的动作分析
服务器端的活动
客户端的活动
2、服务器与客户端的类设计
服务器端主程序类:
StartServer.java
客户端主程序类:
StartClient.java
Server类:
Server.java
Client类:
Client.java
3、代码示例
StartServer.java:
importwork.Server;
publicclassStartServer{
publicstaticvoidmain(String[]args){
StringdataFromClient=null;//定义来自客户端的数据
Serverserver=newServer();//定义新的Server对象
//将第0个参数转化为整型数,并赋值给server对象的destPort属性
server.serverPort=Integer.parseInt(args[0]);
try{
if(server.listen()){
//服务器启动监听成功
System.out.println("Serverisnowlisteningtoport"+args[0]);
}else{
//服务器启动监听失败
System.out.println("Cannotlistentoport"+args[0]);
}
do{
//从客户端读取数据,并存放在dataFromClient中
dataFromClient=server.readFromClient();
//将客户端输入的数据逆序后,赋值给server对象的dataSend属性
server.dataSend=server.reverseString(dataFromClient);
if(!
server.send()){
System.out.println("Datasendfail!
");
}
//在终端上输出接收到的客户端信息
System.out.println("Clientsaid:
"+dataFromClient);
}while(!
dataFromClient.equalsIgnoreCase("quit"));//若客户端输入"quit"则退出循环
server.close();//关闭连接
}catch(Exceptione){
System.err.println("StartServerError:
"+e.getMessage());
}
}
}
StartClient.java:
importwork.Client;
importjava.io.IOException;
import.InetAddress;
publicclassStartClient{
publicstaticvoidmain(String[]args){
StringdataFromServer;//定义来自服务器的数据
StringdataFromSTDIN;//定义来自标准输入的数据
Clientclient=newClient();//定义新的Client对象
try{
//将字符串形式的IP地址转换成InetAddress对象,并设置client对象的
//destIP(目标IP地址)属性
client.destIP=InetAddress.getByName(args[0]);
}catch(IOExceptione){
System.err.println("GetserverIPAddresserror:
"+e.getMessage());
}
//设置client对象的destPort(目标端口)属性
client.destPort=Integer.parseInt(args[1]);
//创建Socket
client.createSocket();
//循环读取来自键盘的输入,并发送给服务器,直到读到“quit”就退出。
try{
do{
//读取来自键盘的输入
dataFromSTDIN=client.readFromSTDIN();
//设置client对象的dataSend(要发送的字符串)属性
client.dataSend=dataFromSTDIN;
if(!
client.send()){
System.out.println("DataSendFail");
}
//输出来自服务器的数据
System.out.println("Serversaid:
"+client.readFromServer());
}while(!
dataFromSTDIN.equalsIgnoreCase("quit"));//若键盘输入不是"quit",则
//继续循环
client.close();//关闭连接
}catch(Exceptione){
System.err.println("StartClientError:
"+e.getMessage());
}
}
}
Server.java
packagework;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
import.ServerSocket;
import.Socket;
publicclassServer{
publicintserverPort;//服务端口
publicStringdataSend=null;//发送给客户端的数据
privateServerSocketserverSocket=null;
privateSocketsocket=null;
privateBufferedReaderbufferedReader=null;
publicServer(){}
/**
*功能:
监听端口返回值:
booleanserverListenStatus,(判断监听成功与否)
*/
publicbooleanlisten(){
booleanserverListenStatus=false;
try{
//在指定端口上创建ServerSocket对象
serverSocket=newServerSocket(serverPort);
}catch(IOExceptione){
System.out.println("CreatenewServerSocketerror:
"+e.getMessage());
}
try{
//监听端口
socket=serverSocket.accept();
}catch(IOExceptione){
System.out.println("Socketaccepterror:
"+e.getMessage());
}finally{
serverListenStatus=true;
}
returnserverListenStatus;
}
/**
*功能:
读取来自客户端的数据返回值:
StringstreamFromClient,来自客户端的数据
*/
publicStringreadFromClient(){
StringstreamFromClient=null;
try{
bufferedReader=newBufferedReader(newInputStreamReader(socket
.getInputStream()));
streamFromClient=bufferedReader.readLine();
}catch(IOExceptione){
System.out.println("Serverreadinputstreamerror:
"+e.getMessage());
}
returnstreamFromClient;
}
/**
*功能:
向客户端发送数据返回值:
booleansendStatus(判断发送成功与否)
*/
publicbooleansend(){
booleansendStatus=false;
try{
//创建PrintWriter对象
PrintWriterout=newPrintWriter(socket.getOutputStream());
//发送数据
out.println(dataSend);
//将数据送出,缓存清空
out.flush();
sendStatus=true;
}catch(IOExceptione){
System.out.println("Serversenddataerror:
"+e.getMessage());
}
returnsendStatus;
}
/**
*功能:
将字符串逆序参数:
orderedString返回值:
StringreverseString
*/
publicStringreverseString(StringorderedString){
StringBufferstringBuffer=newStringBuffer(orderedString);
StringreverseString=stringBuffer.reverse().toString();
returnreverseString;
}
/**
*功能:
关闭连接
*/
publicvoidclose(){
try{
bufferedReader.close();
socket.close();
serverSocket.close();
}catch(IOExceptione){
System.out.println("Servercloseerror:
"+e.getMessage());
}
}
}
Client.java
packagework;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
import.InetAddress;
import.Socket;
publicclassClient{
publicInetAddressdestIP=null;
publicintdestPort;
publicStringdataSend=null;
privateSocketsocket=null;
privateBufferedReaderbufferedReader=null;
publicClient(){
}
/**
*功能:
创建Socket
*/
publicvoidcreateSocket(){
try{
socket=newSocket(destIP,destPort);
}catch(IOExceptione){
System.err.println("Createclientsocketerror:
"+e.getMessage());
}
}
/**
*功能:
向服务器发送字符串返回值:
booleansendStatus
*/
publicbooleansend(){
booleansendStatus=false;
try{
PrintWriterout=newPrintWriter(socket.getOutputStream());
out.println(dataSend);
out.flush();
sendStatus=true;
}catch(IOExceptione){
System.out.println("Clientsenddataerror:
"+e.getMessage());
}
returnsendStatus;
}
/**
*功能:
读取来自服务器的数据返回值:
StringstreamFromServer
*/
publicStringreadFromServer(){
StringstreamFromServer=null;
try{
bufferedReader=newBufferedReader(newInputStreamReader(socket
.getInputStream()));
streamFromServer=bufferedReader.readLine();
}catch(IOExceptione){
System.out.println("Clientreadinputstreamerror:
"+e.getMessage());
}
returnstreamFromServer;
}
/**
*功能:
读取来自标准输入的数据返回值:
StringinputLine。
来自标准输入的数据。
*/
publicStringreadFromSTDIN(){
StringinputLine=null;
try{
bufferedReader=newBufferedReader(
newInputStreamReader(System.in));
inputLine=bufferedReader.readLine();
}catch(IOExceptione){
System.out.println("Clientreadinputstreamerror:
"+e.getMessage());
}
returninputLine;
}
/**
*功能:
关闭连接
*/
publicvoidclose(){
try{
bufferedReader.close();
socket.close();
}catch(IOExceptione){
System.out.println("Servercloseerror:
"+e.getMessage());
}
}
}
四、实验结果
服务器端运行:
客户端运行: