互联网协议的诗和远方(二)

这一篇接上一篇文章互联网协议的诗和远方(一),最近突然迷失在了屈原的离骚中,有对屈原爱国情怀深深折服,不过更多的还是对于古人智慧的一种感叹,第四次工业革命兴起的不仅仅给人带来了前所未有的便利,也剥夺了自然赋予人类想象的天赋,我们开始越来越快,灵魂好像有些跟不上身体的步划,每一个人都行色匆匆,上班下班,大城市的繁荣开始让我们不堪重负,理想被现实取代是一种常态,贪欲是一头恶犬,诗和远方成为人们茶余饭后的闲谈,我想要的不过是在书中寻找自己的一隅精神世界,不过是每一个阳光温柔的周末,泡一壶茶,翻一本书,看大千世界,笑谈人生百态,希望到我古稀之年,回想现在,还可以感叹人生一世,草木一秋,也不枉此生,总不算百走一遭,也只不过是这天地的一颗尘,人生如逆旅,我亦是行人

静态IP地址

静态分配IP地址是指给每一台计算机都分配一个固定的IP地址,优点是便于管理,特别是在根据IP地址限制网络流量的局域网中,以固定的IP地址或IP地址分组产生的流量为依据管理,可以免除在按用户方式计费时用户每次上网都必须进行的身份认证的繁琐过程,同时也避免了用户经常忘记密码的尴尬 ------百度百科

当我们新买了一台电脑,插上网线,开机这时候电脑应该是不能上网的,要想上网我们还需要如下配置,
在这里插入图片描述上面这一张图片涉及到了几个重要的参数,即IP地址,子网掩码,网关,DNS的Ip地址,这几个参数其实是缺一不可的,有了他们我们可以进行网上冲浪,但是这样的配置是有不足的,如果一台电脑使用固定的这些配置,那么其他电脑就不可以使用这一个IP地址了,所以这里又出现了一个动态IP地址
动态IP地址

动态动态,与静态是一个对立面,他是说,我们电脑开机其实是可以不需要我们手动设置IP,电脑会自动给我们分配一个IP地址,他使用的协议就是DHCP协议,这一点我玩虚拟机其实深有体会,当我没有为虚拟机设置固定地址时候,每一次打开虚拟机,查看网络是就会发先,每一次的ip其实都是有变化的,DHCP协议是一种应用层的协议,建立在UDP协议上,他规定了,每一个子网络中,有一台计算机负责本网络的所有IP地址(DHCP服务器),新的计算机加入网络,必须向这一个服务器发送一个DHCP请求
在这里插入图片描述(1)最前面的"以太网标头",设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。

(2)后面的"IP标头",设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

(3)最后的"UDP标头",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他计算机就可以丢弃这个包。

接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。

一个例子

java 中的Socket
服务端


/**
 * 
 * @author 谭婧杰
 *
 */
public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket serverSocket = new ServerSocket(8080);
		Socket accept = serverSocket.accept();
		DataInputStream in = new DataInputStream(accept.getInputStream());
		DataOutputStream out = new DataOutputStream(accept.getOutputStream());
		Scanner scanner = new Scanner(System.in);
		while (true) {
			String readUTF = in.readUTF();
			System.out.print("我接受到客户端的消息"+readUTF);
			String nextLine = scanner.nextLine();
			System.out.print("服务器"+nextLine);
			out.writeUTF("服务器"+nextLine);
			
		}
	}

}


客户端

/**
 * 
 * @author 谭婧杰
 *
 */
public class Client {
    public static void main(String[] args) throws IOException {
    	Socket socket = new Socket("localhost",8080);
    	DataInputStream in = new DataInputStream(socket.getInputStream());
    	DataOutputStream out = new DataOutputStream(socket.getOutputStream());
    	Scanner scanner = new Scanner(System.in);
    	while (true) {
			String line = scanner.nextLine();
			System.out.print("客户端"+line);
			out.writeUTF(line);
			String accpet = in.readUTF();
			System.out.print("服务端响应"+accpet);
			
		}
    }
}
此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况。 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问操作其权限范围内的功能数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露非法访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值