当前位置:文档之家› 简单的局域网聊天程序试验报告

简单的局域网聊天程序试验报告

简单的局域网聊天程序试验报告
简单的局域网聊天程序试验报告

青岛理工大学

C++面向对象课程设计报告

院(系):计算机工程学院

专业:软件工程

学生姓名:__

班级:__软件102学号: 201007190 题目:_局域网聊天程序________起迄日期:_2012.6.18~2012.6.29

设计地点:计算机学院机房

指导教师:

完成日期: 2012 年6月 29 日

课程设计报告内容(供参考)

一、需求分析当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。

在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。

聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。

聊天室的设计目标

本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为:

服务器端功能:

1、初始化socket, 创建服务器端。

2、维护一个链表,保存所有用户的IP地址、端口信息。

3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。

4、接受用户传送来的连接判断命令,并向用户发出响应命令。

1.

二、设计内容

SOCKET连接过程

根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

如何开发一个Server-Client模型的程序

开发原理:服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket 数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。

1.

2.编写程序代码

客户端类:

class CClientSocket : public CSocket

{

// Attributes

private:

UINT m_nTimerID;

CChatDlg* m_pDlg;

// Operations

public:

CClientSocket(CChatDlg* pDlg);

virtual ~CClientSocket();

// Overrides

public:

BOOL SetTimeOut(UINT uTimeOut);

BOOL KillTimeOut();

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CClientSocket)

public:

virtual void OnReceive(int nErrorCode);

virtual void OnClose(int nErrorCode);

virtual BOOL OnMessagePending();

void CClientSocket::OnReceive(int nErrorCode)

{

// TODO: Add your specialized code here and/or call the base class char buffer[BufferSize];

Receive(buffer, sizeof(buffer));

m_pDlg->ShowText(CString(buffer));

CSocket::OnReceive(nErrorCode);

}

void CClientSocket::OnClose(int nErrorCode)

{

// TODO: Add your specialized code here and/or call the base class PostMessage(m_pDlg->m_hWnd, WM_CLIENT_CLOSE, 0, 0);

CSocket::OnClose(nErrorCode);

}

BOOL CClientSocket::OnMessagePending()

{

// TODO: Add your specialized code here and/or call the base class

MSG msg;

if (PeekMessage(&msg, m_pDlg->m_hWnd, WM_TIMER, WM_TIMER, PM_NOREMOVE))

{

if (msg.wParam == m_nTimerID)

{

PeekMessage(&msg, m_pDlg->m_hWnd, WM_TIMER, WM_TIMER, PM_REMOVE);

CancelBlockingCall();

return FALSE;

}

}

return CSocket::OnMessagePending();

}

BOOL CClientSocket::SetTimeOut(UINT uTimeOut)

{

m_nTimerID = SetTimer(m_pDlg->m_hWnd, 1, uTimeOut, NULL);

return m_nTimerID;

}

BOOL CClientSocket::KillTimeOut()

{

return KillTimer(m_pDlg->m_hWnd, m_nTimerID);

}

CServerSocket::CServerSocket(CChatDlg* pDlg)

{

m_pDlg = pDlg;

m_nMessageCount = 0;

}

CServerSocket::~CServerSocket()

{

}

// Do not edit the following lines, which are needed by ClassWizard.

#if 0

BEGIN_MESSAGE_MAP(CServerSocket, CSocket)

//{{AFX_MSG_MAP(CServerSocket)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

#endif // 0

/////////////////////////////////////////////////////////////////////////////

// CServerSocket member functions

服务器类

void CServerSocket::OnReceive(int nErrorCode)

{

// TODO: Add your specialized code here and/or call the base class

char buffer[BufferSize];

Receive(buffer, sizeof(buffer));

if (m_nMessageCount == 0)

{

CString str(buffer);

m_ClientName = str;

str += " 上线!";

m_pDlg->ShowText(str);

for (int i = 0; i < m_pDlg->m_ServerSocket.size(); i++)

{

if (m_pDlg->m_ServerSocket[i] != this)

{

m_pDlg->m_ServerSocket[i]->Send(str, str.GetLength() + 1);

}

}

}

else

{

CString str;

str = m_ClientName + " 说: " + buffer;

m_pDlg->ShowText(str);

for (int i = 0; i < m_pDlg->m_ServerSocket.size(); i++)

{

if (m_pDlg->m_ServerSocket[i] != this)

{

m_pDlg->m_ServerSocket[i]->Send(str, str.GetLength() + 1);

}

}

}

m_nMessageCount++;

CSocket::OnReceive(nErrorCode);

}

void CServerSocket::OnClose(int nErrorCode)

{

// TODO: Add your specialized code here and/or call the base class

CString str(m_ClientName);

str += " 离线!";

m_pDlg->ShowText(str);

for (int i = 0; i < m_pDlg->m_ServerSocket.size(); i++)

{

if (m_pDlg->m_ServerSocket[i] != this)

{

m_pDlg->m_ServerSocket[i]->Send(str, str.GetLength() + 1);

}

else

{

m_pDlg->PostMessage(WM_CLIENT_CLOSE, i, 0);

}

}

CSocket::OnClose(nErrorCode);

}

建立服务器

连接服务器

进行聊天:

三、设计总结(可谈一谈本次课程设计的经验和体会)

通过对这个毕业设计的开发和学习,使自己对软件开发又有了新的理解,增加了自己的开发能力,也深刻理解了团队合作的精神。本次开发,使我不仅学了 C++、数据结构、sql、winsock技术,还对网络编程进行了深入的学习,总结出了一些网络编程的特点,可以为今后的开发提供参考。最后,要感谢老师对我的细心指导,同时感谢我的同学对我的宝贵建议。

四、参考文献

[1]David J. Kruglinski,Programming Visual C++.1998.

[2] 施炜、李铮、秦颍,Windows Sockets 规范和应用—Windows网络编程接口. 1996.

[3]Anthony Jones and Jim Ohlumd,TCP/IP详解卷一:协议(英文版).

机械工业出版社,2003.

[4]王罡林立志,基于Windows的TCP/IP编程.清华大学出版社,2002.

[5]蒋东兴等,Windows Sockets 网络程序设计大全. 清华大学出版社,1999.

五、附录

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

小型局域网组建实验报告

成绩 计算机网络课程实验报告 实验项目名称:小型局域网组 建 学员姓 名: 实验地点:计算机实验室实验日期: 2013 年 4 月 28 日 一、实验项目名称 小型局域网组建 二、实验的目的和要求 1.熟练掌握CISCO官方CCNA模拟器—Packet Tracer的使用操作 2.熟练掌握交换机的基本配置方法 3.熟练掌握主机IP属性设置及网络连通性测试方法 4.熟练掌握基于端口的VLAN配置方法 三、实验内容和原理 某单位刚买来了一台CISCO交换机,用于将301的2台主机、302的2台主机以及303的3台主机组建成局域网。为方便以后管理、维护以及防止交换机被人

恶意设置密码而导致无法进入IOS进行管理,需要对其进行基本配置及进行口令保护。为了提高网络的性能和安全性,需要将3个教研室的主机配置成3个VLAN。 四、实验环境 1.使用Windows操作系统的计算机 2.计算机安装Packet Tracer软件 五、操作方法和实验步骤 步骤1:按照实验环境,在模拟软件中搭建一个网络拓扑,通过Console口访问交换机。 步骤2:交换机基本配置:配置主机名,配置密码,配置接口工作模式,保 存配置。 步骤3:给各主机配置IP属性,使用PING命令测试配置结果。 步骤5:创建VLAN1、VLAN 2、VLAN3,将三个教研室的7台主机分别配置进相应的VLAN,测试配置结果。 六、实验数据记录和处理 1、利用主机0通过Console口访问交换机对交换机进行配置

2、交换机基本配置:配置主机名,配置密码,配置接口工作模式,保存配置。 图1 为交换机配置密码

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号: 2015年12月16日

目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food; 3.3游戏界面设计 3.3.1游戏初始化 游戏初始蛇体长度为3,颜色为灰色,食物标志为1,因为此时没有显示出食物,需要随机生成后,才置为0;

构建小型无线局域网实验报告

构建小型局域网实验报告 实验名称:构建小型局域网实训 实验起止日期: 小组成员: 实验内容: 1.知识回顾 a)对比组建微型局域网多种方式的优劣性 i.有线局域网的缺点 1.在某些场合——如展览馆、野外环境等环境——难以布线,或 者说难以周全布线。 2.布线改线工程量大。有线带宽不断的增加,只是线变得越来越 粗,那时换线工作将会无比艰巨。 3.线路容易损坏,一旦出错将不得不换掉整条线,维护不易。 4.网中的各节点不可移动。特别是当要把相离较远的节点联结起 来时,敷设专用通讯线路布线施工难度之大,费用、耗时之多, 实是令人生畏。 5.而且如果室内的布局需要调整不便捷。 ii.无线局域网优点 1.安装便捷、无缝漫游,灵活性和移动性相对于有线网络来说, 无线局域网的组建、配置和维护都较为容易。无线局域网可以免 去或最大程度地减少网络布线的工作量,一般只要安装一个或多 个接入点设备,就可建立覆盖整个区域的局域网络。 2.节约建设投资、降低消耗;有线网络都是盖楼时预布在墙体内 的,需要富裕出很信息点,早期造成浪费,一旦网络的发展超出了 设计规划,又要挖墙凿地进行网络改造,而无线网络可以根据需 要进行规划和随时调整。 3.易于进行网络规划和调整。对于有线网络来说,办公地点或网 络拓扑的改变通常意味着重新建网。重新布线是一个昂贵、费时、

浪费和琐碎的过程,无线局域网可以避免或减少以上情况的发生。 4.故障定位容易。有线网络一旦出现物理故障,尤其是由于线路 连接不良而造成的网络中断,往往很难查明,而且检修线路需要 付出很大的代价。无线网络则很容易定位故障,只需更换故障设 备即可恢复网络连接。 5.维护费用低,设备安全性好。线路的维护费用高而困难,是有 线组网(接入)的主要维护开支,而这些在无线组网(接入)是完全 可以节省的。无线组网(接入)的主要开支在于设备及天线和铁塔 的维护,相比较而言费用要低很多。有线电缆和明线容易发生故 障,查找困难,且易受雷击、火灾等灾害影响,安全性差。无线 系统抗灾能力强,容易设置备用系统,可以在很大程度上提高网 络的安全性。 b)常用无线网络互联设备 i.路由器(Router)(工作在OSI第三层(网络层)) 1.路由器的功能: a)在网络之间转发网络分组; b)为网络分组寻找最佳传输路径; c)实现子网隔离,限制广播风暴; d)提供逻辑地址,以识别互联网上的主机; e)提供广域网服务。 2.路由器的应用: 把LAN连入广域网或作为广域网的核心连接设备。 3.用路由器进行网络互联的特点: 用路由器连接起来的若干个网络,它们仍是各自独立的。要 想从一个网络访问用路由器连接起来的另一个网络中的站 点,必须指定该站点的逻辑地址(IP地址),通过广播是无 法与之进行通信的。 4.路由表 路由表是保存到达其他网络的路由信息的数据库,包含

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

简单局域网的实现实验报告

实验一简单局域网的实现 姓名:学号:机器号: 一、实验目的 1.掌握局域网各种组网技术; 2.掌握基本的网络扩展方式; 3.了解物理连接与协议绑定的关系; 4.掌握普通网线和级联网线的制作; 5.熟悉Windows操作系统,实现资源共享,掌握对本地及网络资源权限的管理。 二、实验内容 1.制作级联网线,实现两台计算机之间的相互通信; 2.利用集线器和交换机构成简单局域网; 3.利用集线器和交换机级联,进一步扩展网络规模; 4.利用串口线实现两台计算机的互连; 5.掌握Windows环境下NTFS格式文件系统的权限管理; 6.在局域网中实现资源共享,掌握资源服务器和客户端的配置方法。 三、实验环境 相邻两个同学一组,每组2台计算机,操作系统Windows,网卡选用写保护网卡。设备清单:每组8口集线器1台、带交换机功能的小型路由器各1台、普通网线2根、级联网线1根、9针串口线1根。每行同学共享:网络测试仪1台。 四、实验步骤 (一)利用网线直接连接两台计算机 1、用测试仪对网线进行测试,找出普通网线和级联网线,并确保网线正常。 2、通过级联网线连接两台计算机的写保护网卡。 3、分别在各自操作系统中,对通信用物理设备——网卡进行相关协议设置,确保满足通信要求。 4、在各自操作系统中,利用各种网络测试命令测试网络联通状态,如ping对方ip地址等等,最终实现两台计算机通过级联网线进行通信。 注意:第3、4步中涉及的相关配置方法可参见实验一附录。 思考题: 利用网线实现两台计算机直连通信的过程中,需要哪些相关的硬件设备和软件协议?它们分别需要满足哪些要求?

(二)简单局域网的扩展 1、选用HUB进行简单局域网的扩展 (1)选择2根普通网线将两台计算机的写保护网卡通过集线器组成局域网,注意HUB端口的选择。 (2)更换其中的1根普通网线为级联网线,连接到其中一台计算机的写保护网卡,这时HUB侧的端口又该如何选择。 (3)将剪短局域网扩展至两组或多组,尝试采用不同类型的网线,进行简单局域网的扩展。注意:此时网线的选择和HUB端口的选择。 2、选用交换机进行简单局域网的扩展 (1)选择2根普通网线将两台计算机的写保护网卡通过交换机组成局域网,注意交换机是否有端口的选择。 (2)更换其中的2根普通网线为级联网线,这时两台计算机是否能够正常通讯。(3)将简单局域网扩展至两组或多组,尝试采用不同类型的网线,进行简单局域网的扩展。注意此时网线的选择和交换机端口的选择是否有关系。 思考:HUB不同端口在功能上有何不同?对相连设备有怎样的要求?交换机呢?尝试给出所有可能的连接方式。 (三)通过串口连接两台计算机 1、将9针串口线两端分别与两台计算机的串口相连。 2、利用串口助手使两台计算机进行串行通信。 思考题: 总结在此连接方式下实现正常通信所需的硬件设备和软件协议。 当客户机设为自动获取ip地址时,需要主机进行怎样的设置?正常通信时,二者ip地址的配置情况又如何? 当客户机制定自己的ip地址时,需要主机进行怎样的设置?正常通信时,二者ip地址的配置情况又如何? 尝试从网络模型的角度出发,分析利用串口线与利用网线实现两台计算机直接通信时的区别。 (四)资源的权限管理 1、新建用户,将其加入多个不同的用户组中。针对不同的系统用户或用户组,对具有NTFS文件格式的某一文件夹/文件进行各项“共享/安全”属性的设置。 2、通过共享文件夹或驱动器可以将文件和文件夹设置为网络共享。设置某文件

小型局域网的组建与配置

毕业设计(论文) 题目小型局域网的组建与配置 专业计算机应用技术 班级数计0902班 学生董齐 指导教师杨婷 西安理工大学 二0一一年

摘要 随着办公自动化的需要,办公室使用的计算机数目越来越多;而且一些办公设备如打印机、传真机和扫描仪等,在日常办公中应用的频率越来越高。为了提高办公设备的利用率,节省开支,最好的解决办法就是组建一个办公室局域网,共享这些资源。 局域网(Local Area Network)是在一个局部的地理范围内(如一个学校、工厂和机关内),将各种计算机。外部设备和数据库等互相联接起来组成的计算机通信网。它可以通过数据通信网或专用数据电路,与远方的局域网、数据库或处理中心相连接,构成一个大范围的信息处理系统。简称LAN,是指在一个区域内由多台计算机互联成的计算机组。局域网可以实现文件管理、应用软件共享、打印机共享、扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。说起局域网的发展,人们一般首先会想起计算机技术的发展,因为计算机技术的发展,人们是真真切切能感觉到的,但是反观整个局域网技术的发展过程,从第一代到目前第三代-智能网络的发展时代,普通的用户似乎并没有感觉到什么,因为网络是信息时代的基础设施和幕后基石,所以普通的用户不会有太多的了解,只会感觉网络的速度快了,网络能提供的服务多了,其实这一切都离不开网络技术的不断发展,正是这些网络技术的发展才为网络的广泛应用提供了坚实的基础,为信息时代的高速发展提供了原动力。 关键词:局域网资源共享网络技术

Java程序设计实验报告2(弹球游戏)[1]1

《Java语言程序设计》课程设计 实习报告 题目: 班级: 学号: 姓名: 同组人员: 指导老师:张彬

一、实验目的 1、掌握Swing图形用户界面编程以及事件处理等,掌握java绘图技术。 2、掌握多线程编程的基本原理,能使用Runnable、ExecutorService等接口进行 线程的创建、启动等工作。 3、培养独立查找资料,并解决问题的能力。 二、实验任务 1、设计并编程实现弹球游戏: 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力只改变小球的运动方向,小球仍按照初始速度匀速运动,且不考虑小球之间的碰撞)。 鼠标在界面中显示为方块状,玩家需按住鼠标来回移动以避开运动的小球及屏幕四周,如果鼠标碰到任一小球或者窗口四周,则游戏结束。 程序需提供计时功能,并最终显示玩家能坚持多少秒。 2、程序要求: (1)具备相应界面,并通过事件编程,实现相应的GUI组件功能。 (2)使用多线程技术,在程序窗口区域绘制小球,并以线程控制小球的移动,实现动画效果。 (3)实现鼠标与屏幕四周,以及与小球的碰撞检测。 三、开发工具与平台 1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只

是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C++插件(CDT)。 2.开发平台:JDK1.5 四、设计思路 1.界面设计 (1)制作一个简单的面板JFrame,文件保存为bollFrame.java 其中为一public的类bollFrame,其构造方法为: bollFrame(int n){ super(); setTitle("我的弹球小游戏"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();//得到电脑屏幕大小 setSize(450,450); setLocation((dimension.width-game.getWidth())/2-250, (dimension.height-game.getHeight())/2-250);//设置面板显示基中; this.n = n; myBollPanel = new bollPanel(n);//构造一个画板; add(myBollPanel);//将画板放入JFrame createMenu();//创建菜单; setJMenuBar(bar); } (2)构造画板类,文件保存为bollPanel.java 其构造函数如下: bollPanel(int n){ this.n = n; // executorThread = Executors.newCachedThreadPool();//创建线程池; mouse = new mouseThread(mxNow,myNow,groupThread,this);//启动鼠标线程; this.setIsOver(false);//游戏开始线程条件的判断; for(int i =0 ;i

局域网的构架实验报告与心得体会

局域网的架构与应用实验报告与心得体会 101111103 阮伟仁 实验一: 我们第一次实验是自己做网线。首先是看老师做网线,感觉很简单。但是轮到自己做的时候就变得无比的复杂了。经常有的线接不到位,还有就是把线接到水晶头后还是很松。最后只做成功了一根网线。 实验二: 这次课我们组在建立对等网的时候犯了些错误。比如说Internet协议中的IP设置错了;致使后面用ping命令测试网络的时候出现了错误。虽然实验过程一波三折,但是最后经过老师的指导,我们终于完成了本实验,虽然我们小组的完成速度有点慢,但是还是达到了预期的目的,希望以后再接再厉,争取把以后的实验做得更好!以下是第二次试验的内容与大致步骤: 一、Windows Server 2003的网络配置 1.检查网线、网卡、Hub等是否已插好 2.检查Windows Server 2003的基本情况 右击“我的电脑”→“属性”菜单→选择“计算机名”选项卡→检查计算机名Win2003s-01,工作组WorkGroup-07是否正确 3. 安装网络组件及配置 右击“网络邻居”→“属性”菜单→双击“本地连接”→单击“属性”→双击Internet协议(TCP/IP)→设置IP地址192.168.7.1 4. 在Windows Server 2003上创建本地用户 (1)“开始”→“程序”→“管理工具”→“计算机管理”→“系统工具” /“本地用户和组” /“用户”→右击,选“新用户” (2)打开对话框后,输入用户名:user1 →密码:无→选中“密码永不过期”→单击“创建”按钮。

5. 资源共享 (1)用资源管理器创建一个文件夹 c:\myfile,拷贝一些文件到此文件夹中。 (2)右击myfile文件夹→“共享…”菜单→在“myfile 属性”对话框中,选中“共享该文件夹”,共享名为:myfile,用户数限制为:“最多用户” (3)单击“权限”按钮,出现“myfile权限”对话框,设置此文件夹的共享属性为everyone有“读取”权限,则在本机上所有用户,均对文件夹myfile 有读取权限。 三、Windows XP的网络配置 1.检查网线、网卡、Hub等是否已插好 2. 检查Windows XP的基本情况 右击“我的电脑”→“属性”→选择“计算机名”选项卡→检查计算机名WinXP-07、工作组名WorkGroup-07是否正确,如果不正确,单击“更改”按钮修改计算机名和工作组。 3. 安装网络组件及配置 右击“网络邻居”→“属性”→双击“本地连接”→“属性”→双击“Internet 协议(TCP/IP)”,设置IP地址。 4. 创建本地用户 在Windows XP上,可以创建本地用户。 (1)用Administrator账户登录,“开始”→“设置”→“控制面板”→“切换到经典视图”→“管理工具”→“计算机管理”→“本地用户和组”→右击用户,选择“新用户”,输入用户名:user3,管理员可根据需要设置密码,取消“用户下次登录时须更改密码”,勾选“用户不能更改密码”和“密码永不过期”复选框,单击“创建”后关闭对话框。 (2)更改用户登录或注销的方式 为方便不同的本机用户账户登录Windows XP,可以将Windows XP的登录或注销更改为传统的方式,可以通过以下设置予以解决。 “开始”→“设置”→“控制面板”→双击“用户账户”→在打开的窗口中

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

局域网实验报告

局域网技术与组网工程 实验报告 学年学期:201 ~201 学年第学期班级: 任课教师: 学号 姓名

实验题目 一、实验目的 实现不同VLAN 之间的通信,有助理解、学习VLAN 原理和子接口概念。锻炼同学们的动手能力。 二、实验拓扑 三、实验步骤 首先进行VLAN 配置 划分vlan 10 并加入端口 [H3C] vlan 10 [H3C-Vlan10] port ethernet 1/0/1 to 1/0/10 2. 划分vlan20并加入端口 [H3C] vlan 20 [H3C-Vlan20] port ethernet 1/0/11 to 1/0/23 3. 给连接路由器的端口打trunk [H3C] interface Ethernet 1/0/24 192.168.1.2/24 网关:192.168.1.1 Vlan 10

[H3C-Ethernet0/24] port link-type trunk [H3C] port trunk permit vlan all 路由器配置 [Router]int gi0/0 [Router-Ethernet0/0]int gi0/0.10 //定义子接口GE0/0.10 [Router-Ethernet0/0.10]ip add 192.168.1.1 255.255.255.0 [Router-Ethernet0/0.10]vlan-type dot1q vid 10 [Router]int gi0/0 [Router-Ethernet0/0]int gi0/0.20 //定义子接口GE0/0.20 [Router-Ethernet0/0.20]ip add 192.168.2.1 255.255.255.0 [Router-Ethernet0/0.20]vlan-type dot1q vid 20 四、实验结果

小型局域网的组建

学号: 2015340231 网络技术综合训练 计算机网络技术综合实训 ——小型局域网的组建 作者姓名吴祺年 指导教师蔺婧娜 所学专业网络工程班级15网络G2 所属院系信息学院 学习年限2016 年 2 月至2016 年 6 月 二零一六年六月

一、实验项目名称 小型局域网组建 二、实验的目的和要求 1.熟练掌握交换机的基本配置方法 2.熟练掌握主机IP属性设置及网络连通性测试方法 3.熟练掌握基于端口的VLAN配置方法 三、实验内容和原理 某单位刚买来了一台CISCO交换机,用于将301的2台主机、302的2台主机以及303的3台主机组建成局域网。为方便以后管理、维护以及防止交换机被人恶意设置密码而导致无法进入IOS进行管理,需要对其进行基本配置及进行口令保护。为了提高网络的性能和安全性,需要将3个教研室的主机配置成3个VLAN。 四、实验环境 1.使用Windows操作系统的计算机 2.计算机安装Packet Tracer软件 五、操作方法和实验步骤 步骤1:按照实验环境,在模拟软件中搭建一个网络拓扑,通过Console口访问交换机。 步骤2:交换机基本配置:配置主机名,配置密码,配置接口工作模式,保存配置。 步骤3:给各主机配置IP属性,使用PING命令测试配置结果。 步骤5:创建VLAN1、VLAN 2、VLAN3,将三个教研室的7台主机分别配置进相应的VLAN,测试配置结果。 六、实验数据记录和处理

1、利用主机0通过Console口访问交换机对交换机进行配置 2、交换机基本配置:配置主机名,配置密码,配置接口工作模式,保存配置。 图1 为交换机配置密码

《程序设计课程设计》实验报告材料

《程序设计》课程设计 姓名: 学号: 班级:软件工程14 班 指导教师: 成绩:

1.消除类游戏 1.1【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 1.2【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n, m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 1.3【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 1.4【功能实现】 #include #include using namespace std;

int main() { int m, n, i ,j; int temp; cin >> n >> m; temp = m; m = n; n = temp; int * map = new int[m * n]; int * mark = new int[m * n]; int * tmap = map; int * tmark = mark; int dif = 0; //输入 for ( i = 0 ; i < m ; i++ ) for (j = 0; j < n; j++) cin >> *(tmap + i * n + j); for (i = 0; i < m; i++) for (j = 0; j < n; j++) { //横行 if ((tmap + 2 - map) % n != 0 || (tmap + 1 - map) % n != 0) if (*(tmap) == *(tmap + 1) && * (tmap + 1) == *(tmap + 2)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + 1) = 0; *(tmark + dif + 2) = 0; } //竖列 if (tmap + 2 * n - map < m * n || tmap + n - map < m * n) if (*(tmap) == *(tmap + n) && * (tmap + n) == *(tmap + 2 * n)) { dif = tmap - map; *(tmark + dif) = 0; *(tmark + dif + n) = 0; *(tmark + dif + 2 * n) = 0; } tmap = map + (j+1) + i * n; } //输出 cout << endl; tmap = map; for (i = 0; i < m; i++)

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

小型集团公司局域网组建(5)

小型企业局域网组建 一、背景 随着计算机及局域网络应用的不断深入,特别是各种计算机软件系统被相继应用在实际工作中,在公司内部,需要使各部门相互间真正做到高效的信息交换、资源的共享,为员工提供准确、可靠、快捷的各种数据和信息,充分发挥公司现有计算机设备的功能,从而加强公司内各部门的业务和技术联系,提高工作效率,实现资源共享,降低运作及管理成本,因此,企业网络的建设是企业向信息化发展的必然选择,企业网网络系统是一个非常庞大而复杂的系统,它不仅为现代化企业综合信息管理和办公自动化等一系列应用提供基本操作平台,而且能提供多种应用服务,使信息能及时、准确地传送给各个系统。而企业网工程建设中主要应用了网络技术中的重要分支局域网技术来建设与管理的。本课程设计将从小型企业局域网的建设需求、建设原则、拓扑结构、子网划分以及路由协议等方面,展示一个企业网的组建过程,详细介绍关于交换机和路由器等的相关知识。 二、组建小型企业局域网 “组网”是我们经常讨论的一个话题,如何让组网的费用降到最低,同时又保持网络的稳定和可靠。 首先,我们确定了这个网络规模拥有50台计算机,那么这个网络是拿来做什么用的呢?也就是我们要对这个网络进行需求分析,从50台计算机的规模来看,比较适合用在办工作环境中,在一般的办公环境下,组网主要是为了方便内部传输资料和访问互联网络,带宽要求不高,完全可以选择ADSL宽带接入,既省钱,效率又高。关于选择多少兆的ADSL宽带接入,那就要看情况了。不过从50台计算机的规模来看,选择8MB ADSL接入比较合适,价格不贵,在这里我就不说宽带收费问题了。 在确定宽带接入方式后,我们就要开始选择组网的模式。组网模式主要有两个大的类别,一种是有线,一种是无线。如果组建一个无线局域网,虽然省去了布线的麻烦,但考虑到办公环境中大部分还是用的台式机,如果每台计算机配一个无线网卡,少说也要好几千,成本太高,不符合小型办公网络的标准。所以,我们还是选择有线网络。 但有线网络也有两种方案适合组建一个50台计算机的网络,一种是采用带路由功能的ADSL Modem加上一个超过50口的交换机,实现ADSL共享上网,但这种方式组建的网络性能较差。另外一种就是采用路由器加交换机组网,这种方式虽然投入的成本高一些,但性能却很好,所以,我们选择路由器加交换机的方式来组网。

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