C++活动主机扫描

C++活动主机扫描

计算机技术 2年前 (2015-11-20) 浏览: 220 评论: 0

  (1)以命令方式运行:DOS>scanHost  start_ip  end_ip (2)输出内容:活动主机IP地址。 实现原理: (1)通过某IP发送ICMP_ECHO请求报文,接收到ICMP_response 报文,表明该IP主机活动。 (2)利用原始套接字 (3)为了提高检测时间,利用多线程技术。    

C++扫描指定主机开放的端口

C++扫描指定主机开放的端口

计算机技术 2年前 (2015-11-19) 浏览: 386 评论: 0

C++扫描指定主机开放的端口,OS提供了connect()系统调用,用于与远程主机某端口建立连接,如果远程主机该端口处于帧听状态,则connect()连接成功;否则说明该端口关闭。    

通过NWPU-VPN在蒲公英PT上下载资源

通过NWPU-VPN在蒲公英PT上下载资源

技术应用 2年前 (2015-09-17) 浏览: 3008 评论: 0

九月,步入大三的季节。告别了长安校区,告别了朝夕相对的钟南山,告别了耳边鸟鸣室外花香,我们来到了友谊校区。我们终于从大山搬进城市,市区里消费高了,生活水平却下降了不少。而已经相伴我们两年、给我们无数美好体验的IPV6,也随风吹花落去。 搬进旺园,没有了IPv6,支持IPv4的西工大的蒲公英也向我们也下了逐客令:your IPv4 address 113.200.156.51 is not an NWPU IP,为了解决在校园PT网上下载资源的问题,传说有很多方法,比如IPv6隧道啦,这些方法极客人没有试过,但是极客人成功使用了NWPU开放的VPN服务成功实现在蒲公英上下载资源。 NWPU的校园网VPN服务为方便西工大教职员工在校外访问校内信息资源(如翱翔办公、翱翔网、图书馆等资源)。使用统一身份认证账户进行VPN服务认证(校园翱翔门户的用户名和密码);极客人成功测试对蒲公英有效。 使用IE浏览器(或IE内核)打开NWPU-VPN网站http://vpn.nwpu.edu.cn 按照西工大官网给出的配置,安装好Easy Connect后,在每次下载蒲公英PT资源时打开VPN服务即可。你可以访问http://vpn.nwpu.edu.cn,按照提示操作后浏览器会自动启动已安装的Easy Connect客户端。 启动VPN服务就可以下载PT资源了,不过貌似不能做种。

[转]一篇文章概述网络层次

[转]一篇文章概述网络层次

计算机技术 2年前 (2015-07-04) 浏览: 282 评论: 0

 这篇文章主要介绍了网络协议概述:物理层、链路层、网络层、传输层、应用层详解,本文用生活中的邮差与邮局来帮助理解复杂的网络协议,通俗易懂,文风幽默,是少见的好文章,需要的朋友可以参考下 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母。比如SOS(***---***,  *代表短信号,-代表长信号)。这样"***= S, ---=O"就是摩尔斯码规定的协议。然而更进一层,人们会知道SOS是求助信息,原因是我们有“SOS=求救”这个协议存在在脑海里。所以"***---***=SOS=求救"是一个由两个协议组成的分层通信系统。 使用Morse Code的电报机 计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。 物理层(physical layer) 所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,比如亮度、电压或者振幅。对于数字应用来说,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列。 链路层(link layer) 在链路层,信息以帧(frame)为单位传输。所谓的帧,是一段有限的0/1序列。链路层协议的功能就是识别0/1序列中所包含的帧。比如说,根据一定的0/1组合识别出帧的起始和结束。在帧中,有收信地址(Source, SRC)和送信地址(Destination, DST),还有能够探测错误的校验序列(Frame Check Sequence)。当然,帧中最重要的最重要是所要传输的数据 (payload)。这些数据往往符合更高层协议,供网络的上层使用。与数据相配套,帧中也有数据的类型(Type)信息。链路层协议不关心数据中到底包含什么。帧就像是一个信封,把数据包裹起来。 以太网(Ethernet)和WiFi是现在最常见的链路层协议。通过链路层协议,我们可以建立局域的以太网或者WiFi局域网,并让位于同一局域网络中的两台计算机通信。链路层就像是一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信(帧)交给他,让他送给同一社区的另一户人家。 链路层:社区小邮差 网络层(network layer) 不同的社区之间该如何通信呢? 换句话说,如何让WiFi上的一台计算机和以太网上的另一台计算机通信呢?我们需要一个“中间人”。这个“中间人”必须有以下功能: 1. 能从物理层上在两个网络的接收和发送0/1序列, 2. 能同时理解两种网络的帧格式。路由器(router)就是为此而产生的“翻译”。 一个路由器有多个网卡(NIC,Network Interface Controller),每个NIC可以接入多个网络,并理解相应的链路层协议。在帧经过路由到达另一个网络的时候,路由会读取帧的信息,并改写以发送到另一个网络。所以路由器就像是在两个社区都有分支的邮局。一个社区的邮差将信送到本社区的邮局分支,而邮局会通过自己在另一个地区的分支将信转交给另一个社区的邮差手中,并由另一个社区的邮差最终送到目的地。 通过路由连接的WiFi和以太网 整个通信过程如下: WiFi上的计算机1 -> 路由WiFi接口 ->  路由以太网接口 -> 以太网上的计算机2 (蓝色表示WiFi网络,绿色表示以太网络) 在链路层,我们的一个帧中只能记录SRC和DST两个地址。而上面的过程需要经过四个地址 (计算机1,WiFi接口,以太网接口,计算机2)。显然,仅仅靠链路层协议无法满足我们的需要。由于链路层协议开发在先,我们无法改动链路层协议,只能在链路层的数据(payload),也就是信纸内部下功夫了。IP协议应运而生。 计算机1,路由器和计算机2都要懂得IP协议。 当计算机1写信的时候,会在信纸的开头写上这封信的出发地址和最终到达地址 (而不是在信封上),而在信封上写上要送往邮局。WiFi网的邮差将信送往邮局。 在邮局,信被打开,邮局工作人员看到最终地址,于是将信包装在一个新的信封中,写上出发地为邮局,到达地为计算机2,并交给以太网的邮差,由以太网的邮差送往计算机2。 (IP协议还要求写如诸如校验等信息,交通状况等信息,以保护通信的稳定性。) 转交给邮局 在链路层,邮差只负责在本社区送信,所以信封上的地址总是“第一条街第三座房子”或者说“中心十字路口拐角的小房子”这样一些本地人才了解的地址描述,这给邮局的工作带来不便。所以邮局要求,信纸上写的地址必须是一个符合官方规定的“邮编”,也就是IP地址。这个地址为世界上的每一个房子编号(邮编)。当信件送到邮局的时候,邮局根据邮编,就能查到对应的地址描述,从而能顺利改写信封上的信息。 每个邮局一般连接多个社区,而一个社区也可以有多个邮局,分别通往不同的社区。有时候一封信要通过多个邮局转交,才能最终到达目的地,这个过程叫做route。邮局将分离的局域网络连接成了internet,并最终构成了覆盖全球的互联网。 传输层(transport layer) 上面的三层协议让不同的计算机之间可以通信。但计算机中实际上有许多个进程,每个进程都可能有通信的需求。这就好像一所房子里住了好几个人(进程),如何让信精确的送到某个人手里呢?遵照之前相同的逻辑,我们需要在信纸上写上新的信息,比如收信人的姓名,才可能让信送到。所以,传输层就是在信纸的空白上写上新的“收信人”信息。每一所房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送给房子中的某个人。 管理员 传输层协议,比如TCP和UDP,使用端口号(port number)来识别收信人(某个进程)。在写信的时候,我们写上目的地的端口。当信到达目的地的管理员手中,他会根据传输层协议,识别端口号,将信送给不同的人。 TCP和UDP协议是两种不同的传输层协议。UDP协议类似于我们的信件交流过程。TCP协议则好像两个情人间的频繁通信。一个小情人要表达的感情太多,以致于连续写了好几封信。而另一方必须将这些信按顺序排列起来,才能看明白全部的意思。TCP协议还有控制网络交通等功能。 应用层(application layer) 通过上面的几层协议,我们已经可以在任意两个人(进程)之间进行通信。然而每个人实际上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通信,会用严格的律师术语,以免产生纠纷。再比如外交官之间的通信,必须符合一定的外交格式,以免发生外交误会。再比如间谍通过暗号来传递加密信息。应用层协议是对信件内容进一步的用语规范。应用层的协议包括用于Web浏览的HTTP协议,用于传输文件的FTP协议,用于Email的IMAP等等。   总结 总过网络分层,我们从原始的0/1序列抽象出 : 本地地址(邮差)、邮编(邮局)、收信人(管理员)、收信人行业(用语规范) 这些概念。这些概念最终允许互联网上的分布于两台计算机的两个进程相互通信。 写信人必须按照各层的协议,封装好整个信封 (encapsulation); 而收信人则按照相反的顺序,来拆开这个信封。整个过程是可读信息 -> 二进制 -> 可读信息。计算机只能理解和传输0/1序列,而计算机的用户则总是输入和输出可读信息。 网络协议保证了可读信息在整个转换和传输过程中的完整性。 计算机协议本身还有更多的细节需要深入。这篇文章只是从分层的角度描述各个层次所实现的功能。

SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义

SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义

算法语言 计算机技术 2年前 (2015-06-12) 浏览: 243 评论: 0

下面的代码是本次实验使用数据库实现RMI会议管理的关键,里面的主要是实现数据库连接和实现相关的查询的方法,这些方法在之前文章的接口代码已经声明,不过没有实质内容。RmiDataBase类继承了meetinginterface接口。 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单 RmiDataBase.java     自定义的异常处理类:BYException.java      

SSD8_Ex3【JAVA_RMI】(4)会议数据库建表

SSD8_Ex3【JAVA_RMI】(4)会议数据库建表

技术应用 算法语言 2年前 (2015-06-11) 浏览: 208 评论: 0

为了更好管理会议和更好更有效率执行删除、添加、查询等操作,本次SSD8_Ex3【JAVA_RMI】,极客人结合数据库系统知识,决定采用数据库来管理会议。因为这次练习的各个题目都是典型的数据库题,虽然它被放在了网络与分布式计算课程上。 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单   会议数据库rmimeeting建表 数据库名:rmimeeting 建表三项:users(用户),meeting(会议),meetingrecord(会议记录) rmimeetingER图 建表语句  

SSD8_Ex3【JAVA_RMI】(3)开启RMI服务

SSD8_Ex3【JAVA_RMI】(3)开启RMI服务

算法语言 计算机技术 2年前 (2015-06-10) 浏览: 196 评论: 0

这一步骤完成的是创建本地主机上的远程对象注册表Registry的实例,并指定端口为8888,这一步必不可少(Java默认端口是1099),必不可缺的一步,缺少注册表创建,则无法绑定对象到远程注册表上。运行后开启RMI服务,客户端要与服务地址保持一致. 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单 MeetingServer.java  

SSD8_Ex3【JAVA_RMI】(2)远程接口声明

SSD8_Ex3【JAVA_RMI】(2)远程接口声明

算法语言 计算机技术 2年前 (2015-06-10) 浏览: 214 评论: 0

系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单   远程接口声明,这个类服务端和代码和客户端要保持一致。客户端通过调用接口,通过远程对象绑定,在服务器端实现具体方法的内容。接口里只定义了相关方法而没有进行方法实现。 MeetingInterface.java  

SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API

SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API

算法语言 3年前 (2015-06-07) 浏览: 261 评论: 0

RMI和网络API 周末做了网络与分布式系统实验的EX3-java实现RMI分布式议程服务。RMI的全称是“远程方法调用 (Remote Method Invocation)”。下面是极客人的理解:使用RMI远程方法调用,可以实现一个java客户端对java RMI的服务端进行远程调用对方的方法,这些方法在服务器端进行了声明并具体实现,而客户端中只有这些方法的定义而没有方法的内容实现——即一个JAVA接口。没有这些方法实现的JAVA客户端可以通过网络连接获取远程服务器端的对象,然后对远程对象和方法进行调用和操作。也就是说客户端的方法定义在本地,而具体实现却在通过网络连接的"遥远"的服务器上 就极客人目前个人的理解,JAVA RMI除了为客户端省去许多代码,其实还可以为服务器端的数据开放提供另外一种有连接的查询接口,比如现在网络上许多API服务,都是PHP+JSON的形式,通过URL的请求,服务器端查询相关结果后以JSON数据包的形式向客户端返回。这样的数据查询方式现在非常普遍,尤其是微信越来越流行的当下,许多公众号都在采用通过对第三方API返回JSON数据包进行解析,为用户提供天气查询、车票查询、机器人聊天、IP查询、归属地查询等服务。 虽然RMI和JSON-网络API不一样,但是极客人学到RMI就不由自主想到了JSON的网络API。不过两者的不同也显而易见,网络上的JSON-API都是被动接受的,客户端只能向服务器请求数据后服务器返回,而RMI的客户端的权限更大,只要RMI的接口在服务器端有定义,客户端可以主动对服务器进行操作,比如数据库操作:查询数据库,删除数据库记录;运行命令:对服务器进行关机(一个实行远程关机的代码极客人将在本系列文章的最后给出),一般说来,java服务器端程序在本地能做到的一切,都可以通过RMI的方式授权给客户端。 本系列文章主要是通过JAVA RMI实现远程会议管理。分享本次练习的答案不是目的,目的是在此梳理一下这两天的经验方法。 SSD8_EX3问题概述:   这是SSD8练习的Ex3,预计极客人将会写一个系列,更新频率会和NWPU网络与分布式系统实验课2013级进度同步。点击标签或在本站搜索“SSD8”即可获取已更新的SSD8答案。上一练习:SSD8_Exam1【TCP Chat Server】;如果你想继续跟踪SSD练习进展,建议订阅本站。 1) 使用Java RMI创建一个分布式议程共享服务。不同的用户可以使用这个共享议程服务执行查询、添加和删除会议的操作。服务器支持会议的登记和清除等功能; 2) 议程共享服务包括以下功能:用户注册、添加会议、查询会议、删除会议、清除会议; 相关代码和分析将在后续文章中给出。 系列文章链接: SSD8_Ex3【JAVA_RMI服务】(1)概述RMI和网络API SSD8_Ex3【JAVA_RMI】(2)远程接口声明 SSD8_Ex3【JAVA_RMI】(3)开启RMI服务 SSD8_Ex3【JAVA_RMI】(4)会议数据库建表 SSD8_Ex3【JAVA_RMI】(5)数据库连接和会议方法定义 SSD8_Ex3【JAVA_RMI】(6)制作命令行导航菜单  

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册