当前位置:文档之家› 分布式实验报告

分布式实验报告

分布式实验报告
分布式实验报告

南华大学

计算机科学与技术学院

实验报告

(2011~2012学年度第二学期)课程名称分布式系统技术

实验名称C# Socket编程、RMI远程方法

调用、C#IP组播通信

专业:计算机科学与技术班级:计算机092 地点:8—212 教师:徐卓然

姓名:黄世威学号:20094440208

实验一IP网络中的TCP通信实验一、实验目的

1,了解局域网TCP消息通信过程的特点;

2,熟悉最简单的Socket类的操作和使用;

3,实现字符串通信的实现;

二、实验设备及软件环境

一台或两台装有VC++的带有网卡的PC机(或工控机)。

服务器端

10.10.9.210.10.9.3710.10.9.15

10.10.9.1

图1.1 SOCKET通信图

三、实验步骤

内容:基于TCP协议的Socket消息发送和接收

说明:事例程序包括“TCP聊天服务器”与“TCP聊天客户端”。

1,运行示例程序“TCP聊天服务器”设置端口号:40001,如图1.2

2,点击“服务器开启服务”

3,运行示例程序“TCP聊天客户端”,设置端口号一定要与“TCP聊天服务器”设置的一致。

如果在同一台机器上运行,输入服务器IP地址:192.168.2.100,如果不在同一台机器上,输入局域网上服务器所在机器的IP地址(当然首先确保局域网通畅)如图1.3

4,点击“连接”

5,在客户端输入文字消息,可以看到服务器端能显示出客户机的名称、IP地址、以及通过Socket消息发送过来的文字内容。如图1.4

图1.2 启用服务器端

图1.3 启用客户端

图1.4 客户端向服务器端发送SOCKET消息

四、程序代码

TCPServe.cs

namespace TcpServer

{

public partial class TcpServer : Form

{

public TcpServer()

{

InitializeComponent();

//关闭跨线程调用检查

ListBox.CheckForIllegalCrossThreadCalls = false;

}

//tcp服务端对象

Server server = new Server();

///

/// 启动服务端

///

///

///

private void btnBegin_Click(object sender, EventArgs e)

{

//取IP和端口

string ip = txtIP.Text.Trim();

int port = Convert.ToInt32(txtPort.Text.Trim());

//创建网络端点

IPAddress address = IPAddress.Parse(ip);

IPEndPoint endPoint = new IPEndPoint(address, port);

//监听Socket绑定网络端点

server.listenSocket.Bind(endPoint);

//监听队列最大长度为10

server.listenSocket.Listen(10);

//向服务端的委托变量赋值

server.showMessage = this.showMessage;

server.showClient = this.showClient;

//创建监听线程

Thread listenThread = new Thread(server.listen);

//设置为后台进程

listenThread.IsBackground = true;

//启动监听线程

listenThread.Start();

//给出提示消息

showMessage("服务端启动成功");

//禁用启动服务端按钮,避免重复启动错误

btnBegin.Enabled = false;

}

///

/// 将消息文本显示到历史消息框

///

///

private void showMessage(string message)

{

//附加文本,并尾部换行

txtHistory.AppendText(message + Environment.NewLine);

}

///

/// 向客户列表中添加新客户

///

///

private void showClient(string clientKey)

{

//向Items集合添加项

lstClient.Items.Add(clientKey);

}

///

/// 发送消息

///

///

///

private void btnSend_Click(object sender, EventArgs e)

{

//取客户Socket的键值

string clientKey = lstClient.Text;

//取待发送的消息

string message = txtSendMessage.Text.Trim();

//向指定客户端发送消息

server.send(clientKey, message);

//将发送的消息回显到历史消息中

message = "我:" + message;

showMessage(message);

//清空发送消息文本框

txtSendMessage.Text = "";

}

}

///

/// 通信服务端类

///

class Server

{

///

/// 客户端集合,以键值对形式存储,键由IP+port构成

///

public Dictionary clients = new Dictionary();

///

/// 监听Socket

///

public Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

///

/// 委托类型,用于存放显示消息的方法

///

///

public delegate void show(string message);

///

/// 显示接收消息的方法

///

public show showMessage { get; set; }

///

/// 显示客户信息的方法

///

public show showClient { get; set; }

///

/// 是否已处于监听状态

bool isListen = false;

/// 监听方法

///

public void listen()

{

//如果没有启动监听

if (!isListen)

{

//设置为已监听

isListen = true;

//保持等待客户端连接

while (true)

{

//接受客户端连接,保存与客户端通讯的Socket

Socket client = listenSocket.Accept();

//取客户的网络端点(ip+port)作为客户键值

string clientKey = client.RemoteEndPoint.ToString();

//向客户集合中添加新客户

clients.Add(clientKey, client);

//显示新客户

showClient(clientKey);

//创建接收线程

Thread receiveThread = new Thread(receive);

//设置为后台线程

receiveThread.IsBackground = true;

//启动接收线程,并指定所接收的客户

receiveThread.Start(client);

}

}

}

/// 发送消息

/// 客户端键值

/// 待发送的消息

public void send(string client, string message)

{

//检查该客户端是否存在

if (clients.ContainsKey(client))

{

//从客户端集合中取出客户Socket

Socket clientSocket = clients[client];

//由待发消息字符串,创建缓存区

byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message);

//发送消息

clientSocket.Send(buffer);

}

}

///

/// 接收消息

///

/// 客户端的Socket

public void receive(object clientSocket)

{

//类型转换

Socket client = (Socket)clientSocket;

//保持接收状态

while (true)

{

//创建缓存,接收消息

byte[] buffer = new byte[1024 * 1024 * 2];

//获得接收消息的长度

int length = client.Receive(buffer);

//转换为字符串

string message = System.Text.Encoding.UTF8.GetString(buffer, 0, length);

//格式化字符串,格式为客户网络端点+消息

string receiveMessage = string.Format("{0}:{1}", client.RemoteEndPoint.ToString(), message);

//显示所接收到的消息

showMessage(receiveMessage);

}

}

}

}

TcpClient.cs

namespace TcpClient

{

public partial class TcpClient : Form

{

public TcpClient()

{

InitializeComponent();

//禁用控件的跨线程检查

TextBox.CheckForIllegalCrossThreadCalls = false;

}

//客户端对象

Client client = new Client();

/// 连接服务端

///

///

private void btnBegin_Click(object sender, EventArgs e)

{

//取IP和端口

string ip = txtIP.Text.Trim();

int port = Convert.ToInt32(txtPort.Text.Trim());

//连接服务端

client.connect(ip, port);

//显示提示信息

showMessage("连接成功");

//传递显示接收消息的方法

client.showMessage = this.showMessage;

//创建接收消息线程

Thread receive = new Thread(client.receive);

//设置为后台线程

receive.IsBackground = true;

//启动接收线程

receive.Start();

//禁用连接服务端按钮

btnBegin.Enabled = false;

//修改窗体标题,格式为本地通讯Socket

this.Text = string.Format("{0}:{1}", this.Text, client.server.LocalEndPoint.ToString());

}

private void btnSend_Click(object sender, EventArgs e)

{

//取待发送的消息

string message = txtSendMessage.Text;

//发送消息

client.send(message);

//回显所发送消息

message = "我:" + message;

showMessage(message);

//清空发送消息文本

txtSendMessage.Text = "";

//向历史消息中添加消息

void showMessage(string message)

{

//追加消息,尾部添加换行

txtHistory.AppendText(message + Environment.NewLine);

}

}

class Client

{

///

/// 委托,用于显示接收的消息

///

///

public delegate void show(string message);

public show showMessage { get; set; }

public Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

/// 已连接标志

bool isConnect = false;

public void connect(string ip, int port)

{

//如果未连接

if (!isConnect)

{

//由ip创建ip地址对象

IPAddress address = IPAddress.Parse(ip);

//创建网络端点

IPEndPoint endPoint = new IPEndPoint(address, port);

//连接指定的网络端点

server.Connect(endPoint);

//设置标志为已连接

isConnect = true;

}

}

public void send(string message)

{

//由待发消息字符串,创建缓存区

byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message);

//发送消息

server.Send(buffer);

}

/// 接收消息

public void receive()

{

while (true)

{

//创建缓存,接收消息

byte[] buffer = new byte[1024 * 1024 * 2];

//获得接收消息的长度

int length = server.Receive(buffer);

//转换为字符串

string message = System.Text.Encoding.UTF8.GetString(buffer, 0, length);

//调用显示消息的方法

showMessage("服务端:" + message);

}

}

}

}

五、实验心得

本实验使用VS实现了Socket套接字的通信,了解了局域网TCP消息通信过程的特点;熟悉了最简单的Socket类的操作和使用;实现了字符串通信;通过建立两个程序:客户端(Client)和服务器端(Server)。客户端程序申请连接,而服务器端程序监听所有的端口,判断是否有客户程序的服务请求。当客户程序和某个端口连接时,服务器程序就会将“套接字”连接到该端口上,此时服务器与客户程序就建立了一个专用的虚拟连接。客户程序向套接字写入请求、传输信息;服务器程序处理请求并把处理结果通过套接字送回。

实验二RMI远程方法调用

一、实验目的

通过该实验,掌握使用Java RMI编程方法,理解客户机调用服务器的方法的实现过程。

二、实验要求

1.进行实验预习工作;2.准备实验必须的完整程序流程及源代码;3.上机编程,调试程序,得到实验结果;4.通过指导教师验收;

三、实验原理

显示了Remoting应用程序的基本构架。

RMI应用程序通常包括两个独立的程序:服务器程序和客户机程序。典型的服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机调用这些远程对象的方法。而典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种机制。

在与远程对象的通信过程中,RMI使用标准机制:stub和skeleton。远程对象的stub 担当远程对象的客户本地代表或代理人角色。调用程序将调用本地stub的方法,而本地stub 将负责执行对远程对象的方法调用。在RMI中,远程对象的stub与该远程对象所实现的远程接口集相同。调用stub的方法时将执行下列操作:

(1) 初始化与包含远程对象的远程虚拟机的连接;

(2) 对远程虚拟机的参数进行编组(写入并传输);

(3) 等待方法调用结果;

(4) 解编(读取)返回值或返回的异常;

(5) 将值返回给调用程序。为了向调用程序展示比较简单的调用机制,stub将参数的序列化和网络级通信等细节隐藏了起来。在远程虚拟机中,每个远程对象都可以有相应的skeleton(在JDK1.2环境中无需使用skeleton)。Skeleton负责将调用分配给实际的远程对象实现。它在接收方法调用时执行下列操作:(1) 解编(读取)远程方法的参数;(2) 调用实际远程对象实现上的方法;(3) 将结果(返回值或异常)编组(写入并传输)给调用程序。stub和skeleton由rmic编译器生成。

四、实验代码

RemotingServer.cs

namespace RemotingServer

{

public partial class RemotingServer : Form

{

public RemotingServer()

{

InitializeComponent();

}

private void btnStart_Click(object sender, EventArgs e)

{

RemotingConfig_1();

txtMessage.Text = "Remoting 服务启动成功";

//禁用启动按钮

btnStart.Enabled = false;

}

private static void RemotingConfig_1()

{

//调用方式1

//创建TCP信道,端口为40001

TcpChannel tc = new TcpChannel(40001);

//注册TCP信道

ChannelServices.RegisterChannel(tc, false);

//注册在服务器激活的知名对象wellKnown

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Remoting.MyObject), "myObject", WellKnownObjectMode.SingleCall);

}

private static void RemotingConfig_2()

{

//调用方式2,读取配置文件app.config

RemotingConfiguration.Configure("RemotingServer.exe.config", false);

}

}

}

Client.cs

namespace RemotingClient

{

public partial class Client : Form

{

public Client()

{

InitializeComponent();

}

private void btnRemoting_Click(object sender, EventArgs e)

{

//保存转换后的整数

int num1 = 0;

int num2 = 0;

//取输入的字符

string strNum1 = txtNum1.Text.Trim();

string strNum2 = txtNum2.Text.Trim();

//检测数字1输入是否正确

if (Int32.TryParse(strNum1, out num1) != true)

{

txtResult.Text = "请输入正确的数字";

return;

}

//检测数字2输入是否正确

if (Int32.TryParse(strNum2, out num2) != true)

{

txtResult.Text = "请输入正确的数字";

return;

}

int result;

string date = RemotingMethod_2(num1, num2, out result);

//格式化结果字符串

string message = string.Format("远程对象返回的计算结果为,{0},\r\n服务器时间为,{1}",result,date);

txtResult.Text = (message + Environment.NewLine);

}

private static string RemotingMethod_1(int num1, int num2, out int result)

{

//方式1

//声明远程服务端对象

Remoting.MyObject mo = (Remoting.MyObject)Activator.GetObject(typeof(Remoting.MyObject),

"tcp://localhost:40001/myObject");

result = mo.Add(num1, num2);

string date = mo.GetDate();

return date;

}

private static string RemotingMethod_2(int num1, int num2, out int result)

{

//方式2

Remoting.MyObject mo = (Remoting.MyObject)Activator.GetObject(typeof(Remoting.MyObject),

ConfigurationManager.AppSettings["TCPChannel"]);

//调用服务端对象的方法

result = mo.Add(num1, num2);

string date = mo.GetDate();

return date;

}

}

}

Remoting

namespace Remoting

{

public class MyObject:MarshalByRefObject

{

//加法

public int Add(int a, int b)

{

return a + b;

}

//获得服务器时间

public string GetDate()

{

return DateTime.Now.ToString();

}

}

}

在实验中,实现了RMI分布式应用。通过实验我了解到,RMI应用程序包含两个独立的程序:服务器程序和客户机程序。服务器程序等待客户机调用这些远程对象上面的方法;而客户机则从服务器中得到一个或多个远程对象的应用,调用远程对象的方法。RMI为服务器和客户机进行通信和消息传递提供了机制。通过本次实验了解到了以下RMI的主要优点(1)面向对象:RMI可将完整的对象作为参数和返回值进行传递,而不仅仅是预定义的数据类型。RMI则不需额外的客户程序代码(将对象分解成基本数据类型),直接跨网传递对象。(2)可移动属性:RMI可将属性(类实现程序)从客户机移动到服务器,或者从服务器移到客户机。(3)设计方式:对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能,如二层和三层结构系统。(4)便于编写和使用:RMI使得Java远程服务程序和访问这些服务程序的Java客户程序的编写工作变得轻松、简单等

实验三C#IP组播通信

一、实验目的

通过该实验,掌握使用IP组播通信的方法,了解组播通信的优点。

二、实验原理

IP组播(IP multicasting)是对硬件组播的抽象,是对标准IP网络层协议的扩展。它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据包传输到一个组播群组(multicast group)的主机集合。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担。

三、实验代码

Program.cs

namespace Multicast

{

static class Program

{

///

/// 应用程序的主入口点。

///

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Multicast());

}}}

GroupCast.cs

namespace Multicast

{

public class GroupCast

{

///

/// 套接字

///

private Socket _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

///

/// 通信用socket

///

private Socket UDPSocket

{

get

{

return _socket;

}

}

///

/// 组播端点

///

private IPEndPoint CastIPEndPoint

{

set;

get;

}

///

/// 接收消息端点

///

private IPEndPoint ReceiveIPEndPoint

{

set;

get;

}

public ShowMessage ShowReceiveMsg

{

get;

set;

}

public void SetIPandPort(string IP, int Port)

{

//设置组播端点

CastIPEndPoint = new IPEndPoint(IPAddress.Parse(IP), Port);

//设置接收消息端点

ReceiveIPEndPoint = new IPEndPoint(IPAddress.Any, Port);

/// 待发送的消息

public void Send(string Message)

{

//缓冲区

byte[] msg = Encoding.UTF8.GetBytes(Message);

//发送给组播组

UDPSocket.SendTo(msg, CastIPEndPoint);

}

///

/// 接收消息

///

/// 显示消息的方法

public void Receive()

{

//建立缓冲区

byte[] data = new byte[1024 * 1024 * 2];

//终结点端点

EndPoint ep = (EndPoint)ReceiveIPEndPoint;

while (true)

{

//取接收消息的长度

int recieveLength = UDPSocket.ReceiveFrom(data, ref ep);

//将接收消息由字节转换为字符串

string recieveMsg = Encoding.UTF8.GetString(data, 0, recieveLength);

//格式化字符串

string message = string.Format("来自{0}:{1}", ep.ToString(), recieveMsg);

//调用显示消息的方法

ShowReceiveMsg(message);

}

}

///

/// 加入组播组

///

public void JoinGroup()

{

//取组播组的IP

IPAddress ip = CastIPEndPoint.Address;

//绑定接收端点

UDPSocket.Bind(ReceiveIPEndPoint);

//加入组播组

//通过MultiCastOption类定义组播组

UDPSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip));

}

public void LeaveGroup()

{

//取组播组的IP

IPAddress ip = CastIPEndPoint.Address;

//退出组播组

UDPSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.DropMembership, new MulticastOption(ip));

}

///

/// 关闭组播

///

public void Close()

{

//退出组播

//LeaveGroup();

//关闭套接字

UDPSocket.Close();

}

}

}

Multicast.cs

namespace Multicast

{

partial class Multicast

{

///

/// 必需的设计器变量。

///

private https://www.doczj.com/doc/423389321.html,ponentModel.IContainer components = null;

///

/// 清理所有正在使用的资源。

///

/// 如果应释放托管资源,为true;否则为false。

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}

#region Windows 窗体设计器生成的代码

///

/// 设计器支持所需的方法- 不要

/// 使用代码编辑器修改此方法的内容。

///

private void InitializeComponent()

{

this.txtIP = new System.Windows.Forms.TextBox();

https://www.doczj.com/doc/423389321.html,bel1 = new https://www.doczj.com/doc/423389321.html,bel();

this.txtPort = new System.Windows.Forms.TextBox();

https://www.doczj.com/doc/423389321.html,bel2 = new https://www.doczj.com/doc/423389321.html,bel();

this.btnJoin = new System.Windows.Forms.Button();

this.btnLeave = new System.Windows.Forms.Button();

this.groupBox1 = new System.Windows.Forms.GroupBox();

this.txtRecieveMsg = new System.Windows.Forms.TextBox();

this.groupBox2 = new System.Windows.Forms.GroupBox();

this.txtSendMsg = new System.Windows.Forms.TextBox();

this.btnSend = new System.Windows.Forms.Button();

this.groupBox3 = new System.Windows.Forms.GroupBox();

this.btnClose = new System.Windows.Forms.Button();

this.groupBox1.SuspendLayout();

this.groupBox2.SuspendLayout();

this.groupBox3.SuspendLayout();

this.SuspendLayout();

//

// txtIP

//

this.txtIP.Location = new System.Drawing.Point(60, 17);

https://www.doczj.com/doc/423389321.html, = "txtIP";

this.txtIP.Size = new System.Drawing.Size(100, 21);

this.txtIP.TabIndex = 0;

this.txtIP.Text = "224.10.0.1";

//

// label1

//

https://www.doczj.com/doc/423389321.html,bel1.AutoSize = true;

https://www.doczj.com/doc/423389321.html,bel1.Location = new System.Drawing.Point(8, 20);

https://www.doczj.com/doc/423389321.html, = "label1";

https://www.doczj.com/doc/423389321.html,bel1.Size = new System.Drawing.Size(53, 12);

https://www.doczj.com/doc/423389321.html,bel1.TabIndex = 1;

https://www.doczj.com/doc/423389321.html,bel1.Text = "组播IP:";

this.txtPort.Location = new System.Drawing.Point(209, 17);

https://www.doczj.com/doc/423389321.html, = "txtPort";

this.txtPort.Size = new System.Drawing.Size(100, 21);

this.txtPort.TabIndex = 0;

this.txtPort.Text = "40000";

//

// label2

//

https://www.doczj.com/doc/423389321.html,bel2.AutoSize = true;

https://www.doczj.com/doc/423389321.html,bel2.Location = new System.Drawing.Point(168, 20);

https://www.doczj.com/doc/423389321.html, = "label2";

https://www.doczj.com/doc/423389321.html,bel2.Size = new System.Drawing.Size(41, 12);

https://www.doczj.com/doc/423389321.html,bel2.TabIndex = 1;

https://www.doczj.com/doc/423389321.html,bel2.Text = "端口:";

//

// btnJoin

//

this.btnJoin.Location = new System.Drawing.Point(322, 15);

https://www.doczj.com/doc/423389321.html, = "btnJoin";

this.btnJoin.Size = new System.Drawing.Size(75, 23);

this.btnJoin.TabIndex = 2;

this.btnJoin.Text = "加入组播";

https://www.doczj.com/doc/423389321.html,eVisualStyleBackColor = true;

this.btnJoin.Click += new System.EventHandler(this.btnJoin_Click);

this.btnLeave.Enabled = false;

this.btnLeave.Location = new System.Drawing.Point(408, 15);

https://www.doczj.com/doc/423389321.html, = "btnLeave";

this.btnLeave.Size = new System.Drawing.Size(75, 23);

this.btnLeave.TabIndex = 3;

this.btnLeave.Text = "退出组播";

https://www.doczj.com/doc/423389321.html,eVisualStyleBackColor = true;

this.btnLeave.Click += new System.EventHandler(this.btnLeave_Click);

//

// groupBox1

this.groupBox1.Controls.Add(this.txtRecieveMsg);

this.groupBox1.Location = new System.Drawing.Point(13, 50);

https://www.doczj.com/doc/423389321.html, = "groupBox1";

this.groupBox1.Size = new System.Drawing.Size(495, 179);

this.groupBox1.TabIndex = 4;

this.groupBox1.TabStop = false;

this.groupBox1.Text = "接收组播消息";

// txtRecieveMsg

this.txtRecieveMsg.Location = new System.Drawing.Point(7, 21);

this.txtRecieveMsg.Multiline = true;

https://www.doczj.com/doc/423389321.html, = "txtRecieveMsg";

this.txtRecieveMsg.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtRecieveMsg.Size = new System.Drawing.Size(482, 150);

this.txtRecieveMsg.TabIndex = 0;

// groupBox2

this.groupBox2.Controls.Add(this.btnClose);

this.groupBox2.Controls.Add(this.btnSend);

this.groupBox2.Controls.Add(this.txtSendMsg);

this.groupBox2.Location = new System.Drawing.Point(13, 235);

https://www.doczj.com/doc/423389321.html, = "groupBox2";

this.groupBox2.Size = new System.Drawing.Size(495, 141);

this.groupBox2.TabIndex = 5;

this.groupBox2.TabStop = false;

this.groupBox2.Text = "发送组播消息";

//

// txtSendMsg

//

this.txtSendMsg.Location = new System.Drawing.Point(7, 21);

this.txtSendMsg.Multiline = true;

https://www.doczj.com/doc/423389321.html, = "txtSendMsg";

this.txtSendMsg.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.txtSendMsg.Size = new System.Drawing.Size(482, 83);

this.txtSendMsg.TabIndex = 0;

//

// btnSend

//

this.btnSend.Location = new System.Drawing.Point(133, 110);

https://www.doczj.com/doc/423389321.html, = "btnSend";

this.btnSend.Size = new System.Drawing.Size(75, 23);

this.btnSend.TabIndex = 1;

this.btnSend.Text = "发送消息";

https://www.doczj.com/doc/423389321.html,eVisualStyleBackColor = true;

this.btnSend.Click += new System.EventHandler(this.btnSend_Click);

//

// groupBox3

//

this.groupBox3.Controls.Add(this.txtIP);

this.groupBox3.Controls.Add(this.txtPort);

this.groupBox3.Controls.Add(https://www.doczj.com/doc/423389321.html,bel1);

this.groupBox3.Controls.Add(this.btnLeave);

this.groupBox3.Controls.Add(https://www.doczj.com/doc/423389321.html,bel2);

this.groupBox3.Controls.Add(this.btnJoin);

this.groupBox3.Location = new System.Drawing.Point(12, 1);

https://www.doczj.com/doc/423389321.html, = "groupBox3";

this.groupBox3.Size = new System.Drawing.Size(496, 48);

this.groupBox3.TabIndex = 6;

this.groupBox3.TabStop = false;

this.groupBox3.Text = "组播参数设置";

//

// btnClose

this.btnClose.Location = new System.Drawing.Point(303, 109);

https://www.doczj.com/doc/423389321.html, = "btnClose";

this.btnClose.Size = new System.Drawing.Size(75, 23);

this.btnClose.TabIndex = 2;

this.btnClose.Text = "关闭";

https://www.doczj.com/doc/423389321.html,eVisualStyleBackColor = true;

this.btnClose.Click += new System.EventHandler(this.btnClose_Click);

//

// Multicast

//

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

this.ClientSize = new System.Drawing.Size(522, 380);

this.Controls.Add(this.groupBox3);

this.Controls.Add(this.groupBox2);

this.Controls.Add(this.groupBox1);

https://www.doczj.com/doc/423389321.html, = "Multicast";

this.Text = "IP组播通讯";

this.groupBox1.ResumeLayout(false);

this.groupBox1.PerformLayout();

this.groupBox2.ResumeLayout(false);

this.groupBox2.PerformLayout();

this.groupBox3.ResumeLayout(false);

this.groupBox3.PerformLayout();

this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.TextBox txtIP;

private https://www.doczj.com/doc/423389321.html,bel label1;

private System.Windows.Forms.TextBox txtPort;

private https://www.doczj.com/doc/423389321.html,bel label2;

private System.Windows.Forms.Button btnJoin;

private System.Windows.Forms.Button btnLeave;

private System.Windows.Forms.GroupBox groupBox1;

private System.Windows.Forms.TextBox txtRecieveMsg;

private System.Windows.Forms.GroupBox groupBox2;

private System.Windows.Forms.Button btnClose;

private System.Windows.Forms.Button btnSend;

private System.Windows.Forms.TextBox txtSendMsg;

private System.Windows.Forms.GroupBox groupBox3;

}

}

分布式计算环境实验报告

分布式计算环境实验报告 实验名称:在虚拟机下安装Linux系统和 Hadoop 专业班级:网络1101 学生学号:3110610007 学生姓名:平淑容

目录 实验目的..............................................................................P 实验仪器...............................................................................P 实验内容和步骤...................................................................P 安装过程的问题以及解决方法............................................P 代码运行以及实验结果.......................................................P 运行过程中的问题................................................................P 实验总结................................................................................P

一、实验目的 在虚拟机上安装CentOS系统并在Linux系统上安装Hadoop单机模式并且执行一个Java程序。 二、实验仪器 硬件:虚拟机CentOS 软件:Windows 7操作系统 三、实验内容及步骤 实验内容 一、安装虚拟机 二、安装Linux操作系统 三、设置静态ip 四、修改主机名 四、绑定ip和主机 五、关闭防护墙 六、关闭防火墙的自动运行 七、设置ssh 八、安装JDK 九、安装Hadoop 十、在单机上运行Hadoop 十一、Hadoop执行Java程序 实验步骤: 一、安装虚拟机 此处安装的虚拟机是VMware Workstation版本,直接从压缩包里面解压安装即可,此处不做过多介绍。 二、安装Linux系统 此处安装的Linux系统使用的是CentOS版本,直接从压缩包里面解压,然后使用VMware Workstation打开,打开之后选择开机输入用户名和密码进入linux系统。 三、Hadoop的伪分布安装步骤 1.设置静态IP ①在centOS桌面的右上角选择图标,右击修改ip值,选择静 态ip,输入需要增加的ip值、默认网关。

小型校园网的设计与组建实验报告

小型校园网的设计与组建实验报告 一.实验目的 计算机网络是一门实践性较强的技术,课堂教学应该和实践环节紧密结合。计算机网络实验培养学生具有独立进行计算机网络架构和设计能力,提高学生的网络设备使用水平,以及将理论与实践相结合的能力。 二.实验环境及设备 2台路由器、2台交换机、3台PC机 三.实验的内容和要求 根据要求,设计并搭建一个校园网。要求进行子网划分和结构设计,并将网络结构建立起来。最后完成网络设备的调试。 四.实验说明 某大学分为总校和分校,为该校设计校园网,总校有一个局域网共20台计算机,分校由VLAN划分为两个局域网,分别有10台计算机。该校被分配了一个C类网段210.100.10.0,总校和分校各有一台路由器及一台交换机。请进行网络设计,将总校和分校各个局域网连接起来。 根据要求,设计IP地址分配表,设计网络结构,画出网络拓扑图。根据设计搭建网络结构。配置网络设备,完成网络调试。 提示:1)使用IP子网掩码的原理设计IP地址分配表。 2)用到的设备为两台路由器,以及两台交换机。 五.实验设计 一、设计思路 总校局域网20台计算机,分校2个局域网各有10台计算机,若要满足要求,则至少需要5位主机位,即大小为2^5=32台主机的局域网。由于是C类网段,最后8计算机ID码5位用作主机号,还有3位可以用作子网号,即可以划分2^3-2=6个子网(000和111不可用作子网号),因此子网掩码为255.255.255.224

(1111 1111.1111 1111.1111 1111.1110 0000)。而总校、分校各个局域网只需从6个子网中任选其一并且不重复即可。由此可以设计IP分配表如下 二、IP分配表 三、拓扑结构

分布式系统导论实验报告

分布式系统导论 实验报告 实验(3)名称面向连接的流模式Socket 实验(4)名称三层C/S结构 实验人学号 1007XXX姓名 XXX 实验日期 2013年5月20日 报告完成日期 2013年5月21日 成绩指导教师签字 年月日

目录: 一、实验3面向连接的流模式Socket (2) 二、实验4三层C/S结构 (4) 2.1 任务一:通过无连接数据报socket实现C/S应用 (4) 2.2任务二:通过面向连接的流模式socket实现C/S应用 (6) 三、实验心得 (8)

一、实验3面向连接的流模式Socket 1、实验目标:尝试通过面向流模式的socket实现通信。 2、实验原理: 2.1、socket通常也称作"套接字",用于描述IP地址和端口,是一个 通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket和ServerSocket类库位于https://www.doczj.com/doc/423389321.html,包中。 ServerSocket用于服务器端,Socket是建立网络连接时使用的。 在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。 2.2、面向连接的操作使用TCP协议.一个这个模式下的socket必须 在发送数据之前与目的地的socket取得一个连接.一旦连接建立了,sockets就可以使用一个流接口:打开-读-写-关闭.所有的发送的信息都会在另一端以同样的顺序被接收.面向连接的操作比无连接的操作效率更低,但是数据的安全性更高. 3、实验内容: 创建一个服务端的程序,以接受一个连接并用流模式socket接受一个消息。创建一个名为客户端程序。此程序可以请求一个连接,并使用流模式socket。 实验所用到的基本函数解释: 1)serverSocket(int port)指定的IP和端口创建一ServerSocket 对象 2)socket accept()服务端和客户端握手

数据库应用开发实验报告

学生实验报告 (理工类) 课程名称:数据库应用开发专业班级: 学生学号:学生姓名: 所属院部:国际软件学院指导教师: 2013 ——2014 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。 实验项目名称: SQL Server概述及体系架构实验学时: 3 实验地点: B407 实验日期: 2014.4.3 实验成绩: 批改教师:罗扬批改时间: 一、实验目的和要求 1、熟悉Microsoft SQL Server 2005系统环境,包括发展历史、版本与组件及新特性; 2、了解客户/服务器、浏览器/服务器体系结构; 3、掌握系统数据库对象及构成、SQL Server 2005的常用管理工具; 4、熟悉SQL Server 2005 Management Studio平台及组件。

计算机网络综合实验报告参考

计算机网络综合实验报告参考 篇一:计算机网络综合实验报告 ××大学校园网解决方案 一、需求分析 建设一个以办公自动化、计算机辅助教学、现代计算机校园文化为核心,以现代网络技术为依托,技术先进、扩展性强、能覆盖全校主要楼宇的校园主干网络,将学校的各种pc机、工作站、终端设备和局域网连接起来,并与有关广域网相连,在网上宣传自己和获取Internet网上的教育资源。形成结构合理,内外沟通的校园计算机系统,在此基础上建立满足教学、研究和管理工作需要的软硬件环境,开发各类信息库和应用系统,为学校各类人员提供充分的网络信息服务。系统总体设计将本着总体规划、分步实施的原则,充分体现系统的技术先进性、高度的安全可靠性,同时具有良好的开放性、可扩展性、冗余性。本着为学校着想,合理使用建设资金,使系统经济可行。 具体包括下以几个方面:

1、内网络能够高速访问FTP服务器现在或上传文件实现资源共享功能,实现对不同类型的用户划分不同的权限,限制不同类型的用户只能访问特定的服务资源。可以下载和上传资料文件,访问速度可以对指定的用户进行级别的划分。 2、建设Web服务器对外实现信息发布,对内实现教学教务管理。网站发布学校新闻、通知、学校的活动等相关内容。实现学生能够在网上进行成绩查询、网上报名、网上评教等功能;以及教师的信息查询、教学数据上传等。 3、建设邮件服务器以满足校园内部之间和内、外网这间的大量邮件传输的需求。 4、实现内网划分多个VLAN,实现校园内不同校区,不同楼宇,不同楼层的多客户接入。 5、内部实现PC间实现高速互访,同时可以访问互联网。网络内同一IP段内的PC机可以通过网上邻居实现高速互访,传送资料文件等,解决不同楼宇,不同楼层之间通过移动存储设备传送数据费时、费力的问题。 6、内部用户的QoS管理,实现用户的分级管理功能,对用户下载和上传做相应的带宽限制。对校园网络中的流量实现有效控制,对校园内的重要数据量可靠、稳定的传输如:语音、视频会议等的延迟和阻塞的敏感。

网络实验报告-小型校园网的设计与组建

网络实验报告 实验十二小型校园网的设计与组建12.1 实验目的 计算机网络是一门实践性较强的技术,课堂教学应该和实践环节紧密结合。计算机网络实验培养学生具有独立进行计算机网络架构和设计能力,提高学生的网络设备使用水平,以及将理论与实践相结合的能力。 12.2 实验环境及设备 2台路由器、2台交换机、3台PC机 12.3 实验的内容和要求 根据要求,设计并搭建一个校园网。要求进行子网划分和结构设计,并将网络结构建立起来。最后完成网络设备的调试。 12.4 实验说明 某大学分为总校和分校,为该校设计校园网,总校有一个局域网共20台计算机,分校由VLAN划分为两个局域网,分别有10台计算机。该校被分配了一个C类网段210.100.10.0,总校和分校各有一台路由器及一台交换机。请进行网络设计,将总校和分校各个局域网连接起来。 根据要求,设计IP地址分配表,设计网络结构,画出网络拓扑图。 根据设计搭建网络结构。 配置网络设备,完成网络调试。 提示: 1)使用IP子网掩码的原理设计IP地址分配表。

2)用到的设备为两台路由器,以及两台交换机。 思考: 1)要使总校局域网能够与分校两个局域网通信,如何配置静态路由? 分别为分校的两个网段配置静态路由,并且全部经过的连接分校交换机的路由器。 针对本实验,具体配置为: Router1#con Router1(config)#ip route 210.100.10.96 255.255.255.224 210.100.10.66 ! 添加静态路由Router1(config)#ip route 210.100.10.128 255.255.255.224 210.100.10.66 ! 添加静态路由Router1(config)#end 2)如果分校两个局域网分别有20台主机,交换机快速以太网口是否够用?如不够用,则如何解决该问题? 不够用,可以增加一个交换机,进行级联。 IP地址分配表

Hadoop云计算平台实验报告V1.1

Hadoop云计算平台实验报告V1.1

目录 1实验目标 (3) 2实验原理 (4) 2.1H ADOOP工作原理 (4) 2.2实验设计 (6) 2.2.1可扩展性 (6) 2.2.2稳定性 (7) 2.2.3可靠性 (7) 3实验过程 (9) 3.1实验环境 (9) 3.1.1安装Linux操作系统 (10) 3.1.2安装Java开发环境 (14) 3.1.3安装SSH (15) 3.1.4配置网络 (15) 3.1.5创建SSH密钥安全联机 (19) 3.1.6配置Hadoop云计算系统 (19) 3.1.7配置Slaves节点 (23) 3.1.8格式化Hadoop系统 (23) 3.1.9启动Hadoop集群 (23) 3.22.实验过程 (25) 3.2.1可扩展性 (25) 3.2.1.1动态扩展 (25) 3.2.1.2动态缩减 (27) 3.2.2稳定性 (28) 3.2.3可靠性 (31) 3.2.4MapReduce词频统计测试 (32) 4实验总结 (35)

1. 掌握Hadoop安装过程 2. 理解Hadoop工作原理 3. 测试Hadoop系统的可扩展性 4. 测试Hadoop系统的稳定性 5. 测试Hadoop系统的可靠性

2.1Hadoop工作原理 Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成集群上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce 的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算、存储提供了底层支持。 HDFS采用C/S架构,对外部客户机而言,HDFS就像一个传统的分级文件系统。可以对文件执行创建、删除、重命名或者移动等操作。HDFS中有三种角色:客户端、NameNode和DataNode。HDFS的结构示意图见图1。 NameNode是一个中心服务器,存放着文件的元数据信息,它负责管理文件系统的名字空间以及客户端对文件的访问。DataNode节点负责管理它所在节点上的存储。NameNode对外暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,文件被分成一个或多个数据块,这些块存储在一组DataNode上,HDFS通过块的划分降低了文件存储的粒度,通过多副本技术和数据校验技术提高了数据的高可靠性。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。DataNode负责存放数据块和处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制。

中小型校园网规划与设计实验报告

实验五 中小型校园网规划与设计 实验报告 一、实验目的 利用所学知识,对中小学校需求进行调研,并根据学校需求和特点进行网络规划与设计。 二、实验任务 要求编写校园网需求分析报告和网络设计方案。 三、实验内容及结果 (一)需求分析报告: 1) 满足计算机教学教研、计算机辅助教学、行政办公需要,提供 各种教学、办公工具和支撑平台,并提供丰富的计算机软硬件 系统资源。 2) 具有完善的办公事务处理能力,包括电子公文传递、电子公文 管理、电子邮件等无纸办公功能。 3) 能够满足信息交流的需要,方便学校各级领导和教学教研人员 对各种信息资料、科技情报的检索和查询。 4) 能确保整个计算机网络系统的可靠性、安全性、确保信息处理 安全保密,还应有方便高效的网络管理工具。 5) 学校信息网络系统要保证应用和技术先进,能不断满足学校未 来业务发展的需求,具有较强的扩展能力。 (二)网络设计方案: 1) 网络分层规划(划分层数以及各层设备选择) 根据校园规划、校园内数据访问流量特点,网络可采用模块化、层次化的设计方法,使用核心层、汇聚层、接入层三层构架方式。通过千兆光纤交换构建网络核心层,构成网络主干;通过千兆双绞线交换构建汇聚层,构成楼宇子网交换;通过百兆交换构成接入层,实现楼宇中各楼层房间的网络接入。 1.核心层。在校园网络部署2核心节点,双冗余模式。两个核心节点采用2台高性能千兆路由交换机作为主干中心交换机,将两核心节点以千兆双回路互联提供无阻塞传输骨干网,并实现负载分担和互为备份,提高核心层的可靠性和稳定性。  2.汇聚层。在校内的学生宿舍、图书馆、行政楼、实验楼、和多媒体教室部署汇聚交换机,采用千兆交换机作为汇聚交换机,汇聚交换机和核心交换机之间采用双链路捆绑连接,实现负载均衡的同时完成链路备

分布式实验报告

计算机科学与技术学院 实验报告 (学年度第学期) 课程名称分布式 实验名称分布式实验 姓名学号 专业计算机班级 地点教师

实验一:.NET Remoting 一:实验目的和要求: 目的:所谓.NET Remoting就是跨应用程序域边界调用程序集。Remoting服务端承载远程对象,使外界能与之通信,对外的信道可以是HTTP、TCP或者IPC。而我在此次试验中选择的是TCP。最基本的.NET Remoting应用程序应该由三部分构成: ?服务端。承载远程对象。 ?远程对象。需要跨应用程序域边界调用的程序集。 ?客户端。用于调用远程对象。 此次实验就是要在掌握的理论基础之上实现远程调用。 要求:1.进行实验预习工作; 2.准备实验必须的完整程序流程及源代码; 3.上机编程,调试程序,得到实验结果; 4.写出实验报告 二:实验环境: Visual Studio 2010 三:实验步骤: 首先下载安装Visual Studio 2010,此过程比较简单,在这就不介绍了。 远程对象是根本,服务端只是一个载体,那么我们就先要创建一个简单的远程对象:1.打开Visual Studio 2010,在在主界面中选择文件,选择“新建”→“项目”命令,新建一个Remoting类库项目。 2.把默认的Class1.cs重命名为RemoteObject.cs,打开cs文件,修改代码为: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Remoting { publicclass MyObject:MarshalByRefObject { //减法 publicint Sub(int a, int b) { return a - b; } //获得服务器时间 publicstring GetDate() {

电商实验报告

《电子商务》实验报告一 开课实验室:电子商务实验室 学院班级学号姓名成绩 课程名称电子商务 实验项目 名称 网络检索工具的使用指导教师 一、实验目的 掌握利用网络检索工具检索商务信息的基本方法 二、实验内容 1、通过搜索引擎实现网络商务信息的采集。 2、通过图书馆专业数据库检索电子商务研究文献 三、实验步骤及要求 1、登录主要搜索引擎网站,如谷歌、百度,使用其高级检索工具检索: B2B、B2C、C2C、B2B2B、B2B2C网站的主要功能、类型、代表网站、发展现状、最新资讯。 2、登录校图书馆的专业期刊数据库,如:清华同方数据库、维普数据库、万方数据库使用检索工具检索下列资料:“我国农业电子商务的模式”“电子商务的盈利模式”。要求每个题目检索资料不少于十篇,并根据检索文献回答:(要求原创、每题不少于400字),在观点之后列出参考文献(至少10篇)。 (1)我国农业电子商务的模式有哪些? (2)目前电子商务又有哪些新的盈利模式? 3、登录并熟悉以下网站:(专科生不用作此题) 工业和信息化部网站 中国互联网信息中心 中国行业研究网 艾瑞市场咨询网 通过以上网站,查找我国电子商务发展相关的最新统计数据。 中国调查网 问道调查网 调查网 通过以上三个网络了解开展网上调查问卷的方法 四、注意事项: 1、利用搜索引擎检索商务信息时,选择恰当的关键词和检索组合,有助于得到较好的检索结果。 2、检索文献前,请先在专业数据库网站上下载阅读器。 3、格式要求: 字体:宋体小四 行间据:单倍 参考文献格式:1、作者“文章名”期刊名 ****年第几期 五、实验报告内容: 『一』答: 一、B2B网站

学校网络实验报告

学校网络实验报告 篇一:实验报告模拟校园网 篇二:网路工程专业综合实验报告 专业综合实验报告 课程名称:专业综合实验课题名称:校园网—接入层和汇聚层姓名: 班级:带教老师: 报告日期: 电子信息学院 目录 一、综合实验的目的和意义 (4) 二、综合实验的内容 (5) 2.1 校园网需求分析 ................................................ ........................... 5 2.2校园网规划................................................. .................................... 7 2.3网络技术指导与测试分析 ................................................ ............ 9 三、综合实验的步骤与方

法 (17) 3.1项目需求分析 ................................................ ............................. 17 3.2制定网络工程项目实施目标方案 (17) 四、综合实验的要点 ..................................... 18 五、小组分工 . (19) 六、结果分析与实验体会.................................. 19 七、问题 .........................(本文来自:小草范文网:学校网络实验报告)...................... 20 参考文献............................................... 21 前言 通过专业综合实验,使学生在掌握了网络工程专业的理论知识和实践知识的前提下,能够完成从网络设备的选型、配置、设计、施工、组建,到测试、管理、维护、应用、开发等一系列贯穿网络工程全过程所有实验任务。同时,也使得每个学生能够满足网络工程专业的“建好网、管好网、用好网”的四年培养目标。因此,专业综合实验对学生的网络

数据库原理与应用实验报告

数据库原理与应用实验报告 课程名称: 指导教师: 学号: 姓名: 院系: 时间: 地点:

目录 实验一数据库的建设、修改与删除实验二基本表的创建、修改与删除实验三数据更新操作 实验四SQL数据查询与索引 实验五视图定义与管理 实验六数据库的安全性控制 实验七数据库的完整性控制

一、实验目的 (1)、巩固数据库的基础知识。 (2)、学会使用SQL Server创建数据库,并进行简单的管理工作。 (3)、掌握修改、分离和附加数据库的方法。 二、实验内容与步骤 (1)、SQL Server2000提供了哪几个基本服务?每个服务的作用是什么? SQl Server2000提供的几种基本服务以及作用是: 1)MS SQL Server,一般的数据库功能都是由他提供,如文件管理、查询处理、数据储存等。2)DTC,是分布式事务处理协调器支持跨越两个或多个服务器的更新操作来保证事务的完整性。 3)SQL Server Agent,fuze SQl Server自动化工作,如果需要SQL Server在指定的时间执行某一个储存过程,就需要用到这个服务。 4)Search Service,是全文查询服务,负责全文检索方面的工作。 (2)、在安装完成之后,应至少先启动哪个服务?使用哪个工具来完成启动SQL Server2000服务的任务? 应至少先启动SQl Server服务管理器,使用SQL Server企业管理器来启动SQL Server2000的服务任务。 (3)、SQL Server2000提供了哪些系统数据库?每个系统数据库的作用是什么? SQL Server2000提供了6个系统数据库,他们分别是: 1)master数据库记录SQL Server的所有的系统级别的信息; 2)temdb数据库保存所有的临时表和储存管理过程; 3)model数据库是为用户创建数据库提供的模版; 4)msdb数据库公SQL Server代理程序调度警报和作业以及记录各种操作; 5)northwind和pubs是示例数据库。 (4)、一个数据库至少包含几个文件和文件组? 一个数据库应至少包含一个数据库文件和一个事务日志文件。 一个数据库应至少包含一个文件组,即主文件组。 (5)、什么时候应当备份master数据库? 1)在sql出现严重bug 2)在改变sql的根本配置候 3)在改变用户角色 4)在强制修改master数据库 (6)、欲在某SQL Server实例上建立多个数据库,每个数据库都包含一个用于记录用户名和密码的users表,如何操作才能快捷地建立这些表? 把这个表建立在系统数据库model中 (7)、掌握SQL Server 2000常用的系统函数,并完成以下操作: 1)返回系统当前的日期和时间; select getdate(); 2)返回当前日期的年份; select year(getdate()); 3)返回字符串“weare abcgoo” select len('weare abcgood') as '字符串长度';

校园网系统集成设计讲解学习

中原工学院软件学院 《校园网系统集成设》 实验报告 课程: 局域网规划与分析 专业:软件工程 班级:rjB网络102 学号:201007104236 学生姓名:王禺

指导教师:夏冰 日期:2012.6.13 校园网系统集成设计试验报告 1.实验目的 (1)掌握为大型校园网规划IP地址的技能和方法。 (2)掌握专用IP地址解决IPv4地址不足的问题。 (3)掌握设计具备三层结构的大型校园网的基本方法。 (4)用visio绘制校园网拓扑图。 2.任务导入 (1)学院具有18个学院,3个校区,其中网络中心、亚太、国教位于北区,软件学院 位于西区,其余学院位于南区。 (2)网络中心向外提供各种标准化信息化的服务,各个学院也自行向互联网发布学院 信息并负责自己学院的信息服务,每个学院拥有约1500台pc。 (3)学校从CERNET结构申请IPv4地址202.196.0.0/18,从CNC网通申请IPv4地址 125.10.0.0/20。 (4)采用三层结构为设计校园网,选用万兆以太网连接3个校区作为高速主干;采用 千兆以太网作为各位园区的主干,形成大学校园网的汇集层,选用百兆以太网作为接入层。 (5)大学校园网与因特网具有统一接口,即通过千兆以太网接入CERNET和CNC。 3.技术原理 针对实验中涉及到基本概念、基本原理、基本技术、分类方法、解决问题的方法和原因或依据、实验重要参数说明等做一下简介。 1.VLSM

为了有效的使用无类别域间路由(CIDR)和路由汇总来控制路由表的大小,网络管理员使用先进的IP寻址技术,VLSM就是其中的常用方式VLSM是指通过“借主机位”技术来 实现的子网划分技术,因主机位减少使得掩码位增加产生变化,因此又称之为可变长子网掩 码技术。 2.核心层 主要是实现骨干网络之间的优化传输,骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。网络的控制功能最好尽量少在骨干层上实施。核心层一直被认为是所有流量 的最终承受者和汇聚者,所以对核心层的设计以及网络设备的要求十分严格。核心层设备将 占投资的主要部分。核心层需要考虑冗余设计。 3.分布层 是楼群或小区的信息汇聚点,是连接接入层和核心层的网络设备,为接入层提供数据的汇聚、传输、管理、分发处理。分布层为接入层提供基于策略的连接,如地址合并、协议过滤、路由服务、认证管理等。通过网段划分(如VLAN)与网络隔离可以防止某些网段的问题蔓延和影响到核心层。分布层也可以提供接入层虚拟网之间的互连,控制和限制接入层对核心层的访问,保证核心层的安全和稳定。分布层的功能主要是连接接入层节点和核心层中心。分布层设计为连接本地的逻辑中心,仍需要较高的性能和比较丰富的功能。分布层设备一般采用可管理的三层交换机或堆叠式交换机以达到带宽和传输性能的要求。其设备性能较好,但价格高于接入层设备,而且对环境的要求也较高,对电磁辐射、温度、湿度和空气洁净度等都有一定的要求。分布层设备之间以及分布层设备与核心层设备之间多采用光纤互联,以提高系统的传输性能和吞吐量。 4.接入层 通常指网络中直接面向用户连接或访问的部分。接入层目的是允许终端用户连接到网络,因此接入层交换机具有低成本和高端口密度特性。接入交换机是最常见的交换机,它直接与 外网联系,使用最广泛,尤其是在一般办公室、小型机房和业务受理较为集中的业务部门、 多媒体制作中心、网站管理中心等部门。在传输速度上,现代接入交换机大都提供多个具有 10M/100M/1000M自适应能力的端口。 4.网络环境与网络拓扑 安装Visio软件的Windows操作系统,并利用已有的网络规划与设计能力进行实验。

云计算实验报告

云计算原理课程 期末实践报告 题目:Linux集群、MapReduce和 CloudSim实践 成绩: 学号: 姓名:罗滔 登录邮箱: 任课老师:许娟 2016年11月12日 目录 实验一:AWS身份与访问管理(P2~P11)实验二:AmazonRelationalDatabaseService(P11~P20)实验三:Hadoop实验报告(P21~)

AWS管理控制台 使用qwikLABS登录AWS管理控制台 6.在AWS管理控制台中,单击【服务/Services】,然后单击【IAM或身份与访问管理/ IAMorIdentity&AccessManagement】。 7.在IAM控制台的左侧面板中,单击【用户/Users】。 8.找到“userone”,然后单击其名称以显示有关该用户的详细信息。在用户详细信息中,找到有关该用户的以下三方面的信息: a.已向该用户分配了一个密码 b.该用户不属于任何组 c.目前没有任何策略与该用户关联(“附加到”该用户)

9.现在,单击左侧导航窗格中的【组/Groups】。 本实验的CloudFormation模板还创建了三个组。在IAM控制台中的【用户/Users】仪表板中可以看到, 自动化CloudFormation脚本在创建这些组时为其提供了唯一的名称。这些唯一名称包含以下字符串: “EC2support” “EC2admin” “S3admin” 完整组名的格式如下所示: EC2support--GA9LGREA7X4S 从现在开始,我们在本实验中将使用上面这些简写名称来指代这些组。您可以在【组/Groups】仪表板中搜 索子字符串,以便为后续实验操作确定正确的组。 10.单击“EC2support”对应的组名。其格式应与上面的类似。

数据库原理B实验报告完整版1-3

实验一 认识DBMS系统 日期 2011-3-23一、实验目的 1.通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。 2.熟悉对DBMS的操作 3.搭建今后实验的平台 二、实验原理 企业管理器是SQL Server中最主要的工具,使用它基本上可完成SQL Server的所有管理操作,如数据库的创建和管理、数据表的创建和管理、数据库安全管理等,在本书第五课中将对其作详细介绍。 查询分析器主要用于创建和执行SQL命令,以完成数据库的查询和管理工作。查询分析器和企业管理器是SQL Server的两大主要工具。 服务管理器主要用于启动、暂停、停止和检查本地服务的状态。SQL Server提供如下服务: SQL Server服务:该服务提供管理服务器中的所有数据库、执行T-SQL程序、执行存储过程、处理分布式查询等服务。必须启动该服务,用户才能通过客户端访问SQL Server服务器中的数据。 SQL Server Agent服务:该服务用于执行作业、监视SQL Server以及激发警报。SQL Server Agent允许自动执行某些管理任务的服务,所以必须启动SQL Server Agent 服务,才能使本地或多服务器的管理任务自动运行。 Microsoft Search服务:提供SQL Server全文检索功能。 Distributed Transaction Coordinator服务:提供Microsoft分布式事务处理功能。 MSSQL Server OLAP Service服务:支持Analysis Services的各项功能,该服务在安装了支持Analysis Services才有。 三、实验仪器和设备 1. 计算机 2. SQL Server 2000 四、预习要求 复习已经讲过的SQL Server 2000的基本工具使用方法。

网络综合实验报告

专业综合实验报告 课程名称:专业综合实验课题名称:校园网—接入层和汇聚 层姓名: 班级:带教老师: 报告日期: 2013.12.9--2013.12.13 电子信息学院 目录 一、综合实验的目的和意义 (4) 二、综合实验的内容 (5) 2.1 校园网需求分 析 (5) 2.2校园网规划............................................................................... ...... 7 2.3网络技术指导与测试分 析 ............................................................ 9 三、综合实验的步骤与方法 .. (17) 3.1项目需求分 析 ............................................................................. 17 3.2制定网络工程项目实施目标方案 (17) 四、综合实验的要点 ..................................... 18 五、小组分 工 ........................................... 19 六、结果分析与实验体会.................................. 19 七、问 题 ............................................... 20 参考文 献 (21) 前言 通过专业综合实验,使学生在掌握了网络工程专业的理论知识和实践知识的前提下,能够完成从网络设备的选型、配置、设计、施工、组建,到测试、管理、维护、应用、开发等一系列贯穿网络工程全过程所有实验 任务。同时,也使得每个学生能够满足网络工程专业的“建好网、管好网、用好网”的四年培养目标。因此,专 业综合实验对学生的网络工程能力培养具有重要的作用和意义。 一、综合实验的目的和意义 《专业综合实验》课程是网络工程及相关计算机专业学生的一门实践课程,本课程旨在计算机网络的理论知识和实践知识的结合下教授学生设计,构建和维护计算机网络的知识技能。同时对于学生掌握计算机网络的 基础理论和过程,对于熟悉网络构建和管理的技术和方法也是一个非常重要的检测,对学生的计算机应用能力 的培养具有重要的作用和意义。 通过专业综合实验,使学生在掌握了网络工程专业的理论知识和实践知识的前提下,能够完成从网络设备的选型、配置、设计、施工、组建,到测试、管理、维护、应用、开发等一系列贯穿网络工程全过程所有实验 任务。同时,也使得每个学生能够满足网络工程专业的“建好网、管好网、用好网”的四年培养目标。因此,专 业综合实验对学生的网络工程能力培养具有重要的作用和意义。 本课程要求学生综合所有计算机网络课程的相关知识,包括:计算机网络的基本理论和方法、网络的构建、交换机路由器的配置以及各种网络服务的配置、网络安全工程的设计与实现、网络编程技术的应用等内容。网

数据库课程设计实验报告

《数据库原理及应用》课程设计报告题目:计算机学院选课管理系统 学号:10903060137 姓名朱子奇 2011年6月

数据库课程设计实验报告系统名称:计算机学院选课管理系统 课程名称:数据库课程设计 课程设计时间:为期五天(2011.6.20-2011.6.24)课程设计内容: 一开发背景 1.1 背景 1.2 目的 二功能描述 2.1 系统目的与要求 2.2 系统可行性分析 三业务流程分析 四数据流程分析 4.1 数据流程图 4.2 数据字典 4.3 E-R图 五概念模型设计 六物理模型设计与优化 七课程设计心得体会 八参考文献

一开发背景 1.1 背景: 大学的课程按大类来说一般分为必修课和选修课。必修一般指学校或院系规定学生必须修习某课程,学校对必修课程一般有统一的要求和安排。选修是指根据学生个人兴趣或专业需要自由选择修习某课程。简言之,必修就是必须修读,选修就是选择性修读。一般来说,基础性的知识都作为必修课程。有些知识不是基础性的,与兴趣和研究方向有关,这部分知识可以选择。这是大学与中学最大的不同之处。90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代高校管理信息系统提供了充足的条件,用计算机数据库系统的形式来管理选课成为了既方便又快捷的一种方式。因此开发选课管理系统是十分有前景的工作。 1.2 目的: 利用计算机支持学校高效率完成选课操作,是适应现代管理要求、推动企业劳动型治理走向科学化、规范化的必要条件;而选课管理是一项琐碎、复杂而又十分细致的工作,学生的基本资料,所开设的课程条目,选课资料的保存,选课条件的约束,一般不允许出错,假如实行手工操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,而计算机选课操作,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工治理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些

网络安全实验报告 (1)

《网络安全与网络管理》课程 实验报告 学院年级2012专业网络工程 姓名学号 任课教师上机地点 实验教师

《网络安全》课程实验报告一 实验题目Sniffer网络抓包分析 一、实验时间2015年 3月 18日周三上午4-5节 二、实验目的: 掌握1-2种Sniffer软件的使用;能利用相关软件进行网络抓包并进行网络协议分析;进而理解相关的网络安全威胁 三、实验要求 1.查看PING包的构成(默认32Byte内容),若用64Byte来ping,内容是什么? 2.登录校园网,查看捕捉到的用户名和密码 3.查看TCP三次握手的包的序列号规律 4.登录校园网的邮箱,查看所用的协议及其工作过程 实验报告要求: 注明以上实验结果(附实验截图) 四、实验内容、过程和结果(实验主要内容的介绍、主要的操作步骤和结果) 1.使用ping命令进行测试,截取数据包抓取ping包: 2.登陆校园网,查看捕捉到的用户名和密码:打开校园网登陆页面,输入用户名yankun,密码123456,然后启动抓包软件抓取到如下截图的包,在包中找到了之前输入的用户名和密码,如下框中所示;

3.查看TCP三次握手的包的序列号规律,对打开浏览器着一过程进行抓包分析:如下截图,通过下面的抓包可以清楚的了解到三次握手的建立过程;

分析:TCP报文的首部如下图所示,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 确认号字段——占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。 确认比特 ACK ——只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。 在上面的两个截图中,第一个图的seq=79780372,Ack=171311206,在第二个截图中可以看到seq=171311206, Ack=79780373,接收到的确认号是之前对方发过来的序列号加1,三次握手的过程就是靠双方发送先关序列号进行确认联系,从而建立安全的通道进行数据传输。 4.登录校园网的邮箱,查看所用的协议及其工作过程 此截图是登陆校园邮箱过程的包,可以在包中发现有TLS协议,用来加密数据,以保障数据的安全性;

分布式系统实验报告

目录 一、需求分析 (1) 1. 1课程设计题目 (1) 1. 2课程设计任务和要求 (1) 要求: (1) 任务: (1) 1. 3课程设计环境 (1) 1. 4实验资源配置 (1) 二、概要设计 (2) 2. 1设计内容 (2) 三、测试与操作 (2) 3.1.1 创建DFS根 (2) 3.1.2 为DFS根添加链接 (3) 3.1.3 使用DFS副本实现容错和负载均衡 (4) 3.1.4 检测实验结果 (7) 五、课程设计总结与体会 (8)

六、致谢 (8)

一、需求分析 1. 1课程设计题目 本课程设计题目为:卷影副本和分布式文件系统 1. 2课程设计任务和要求 要求: 通过DFS将整个局域网同一网段的所有的共享文件夹集成到一个树状结构中 供用户访问。 任务: 1.创建DFS根; 2.为DFS根添加链接; 3.使用DFS副本实现容错和负载均衡; 1. 3课程设计环境 Windows Server 2003 1. 4实验资源配置 1.4台虚拟机,Server1,Server2,server3和client1,server1作为域控制器,其他计算机作为域中的成员计算机; 2.将Server2,Server3,client1分别加入到域;

二、概要设计 2. 1设计内容 分布式文件系统(Distributed File System,DFS)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。也就是说网络资源可能分散在网络中的任何一台计算机上,用户为了能够访问到这些共享文件夹必须知道这些共享文件夹的网络路径(UNC路径)才能够访问这些共享文件夹,并且当要访问多个相关的共享文件夹时必须在“网上邻居”或“网络驱动器”之间切换。 为了避免上面这种情况,Windows Server 2003引入了DFS,DFS使得用户无需知道文件夹具体在哪台计算机上,而只需要知道DFS文件服务器的UNC路径或IP地址就可以了。因为通过DFS可以将整个局域网同一网段的所有的共享文件夹集成到一个树状结构中供用户访问,这样当用户需要访问分散在网络中的多个共享资源的时候并不需要自己去各个服务器上寻找共享文件夹,而是只需要访问DFS服务器上的共享文件夹就可以了。当用户打开这个DFS服务器上的共享文件夹访问共享资源的时候,其访问被DFS自动地重新定向到网络中共享文件夹所在的服务器上,而用户并本身不知道(也无需知道)究竟这些文件夹放置的具体位置。 除此之外DFS还可以提供容错(Fault Tolerance)和负载均衡(Load Balancing)的功能。如果共享文件夹在网络中有多个相同的副本即多个内容相同的共享文件夹放置在不同的服务器上,当其中一个副本因意外而停止共享时,用户访问该文件夹的时候DFS可以自动将其他副本提供给用户使用,从而达到容错的功能。另外DFS也会在多个副本之间自动选择一个以响应的用户的请求,降低服务器的工作强度。而这一切均不用用户参与操作,完全由DFS自动完成。共享文件的权限与DFS拓扑无关,用户能否访问DFS上的文件夹,由DFS 上共享的文件夹的实际所在的计算机上的NTFS权限和共享权限决定。 测试与操作说明 三、测试与操作 3.1.1 创建DFS根 创建基于域的DFS根的过程。事先,在服务器上创建文件名为ljj_DFS的共享文件夹,此文件夹将作为DFS访问的起点,另外,在其他两台计算机上分别创建名为“movie”和“music”的共享文件夹 ⑴在要创建DFS的计算机上(本实验中服务器A创建DFS),单击“开始”→“程序”→“管理工具”→“分布式文件系统”,打开分布式文件系统管理控制台,如图所示,在左半部分树窗口中的“分布式文件系统”上单击鼠标右键,在如图4-38所示的菜单中选择“新建根目录”。 ⑵在弹出的“欢迎使用根目录向导”对话框中单击“下一步”按钮,在分布式文件系统管理控制台中,将出现新建DFS根目录向导。

相关主题
文本预览
相关文档 最新文档