day39_0629
选择题
消息传送是使用的 UDP协议,能上QQ说明UDP协议没有问题;能查看同事的电脑,说明DHCP协议也没问题
DNS -->Domain Name System 域名系统,为其他网路应用提供一种核心服务,使各种应用能够在应用层使用计算机的名字而不需要直接使用ip地址.有可能是DNS出现问题导致的访问地址出错而无法进行通信
100-199 指定客服端相应的某些动作。
200-299 表示请求成功
300-399 用于已经移动的文件并且包含在定位头信息中
400-499 指定客服端错误
500-599 服务端错误
首先 2^4<20<2^5
所以至少需要5位来表示网络号(向主机号借5位),
也就是说子网掩码部分应该是 11111111 11111111 11111111 11111000
也就是255.255.255.248(255-2^3+1)
TCP建立连接需要经过三次握手的过程,TCP释放连接需要经历四次挥手的过程
A.DHCP的设置文件: /etc/dhcpd.conf
B.网络路由的设置文件: /etc/gateways
C.DNS解析的设置文件在: /etc/resolv.conf
D.邮件服务的设置文件: /etc/mail.rc
Dos:Denial of Service 拒绝服务
roote add -net 目标网址 gw 网关 netmask 子网掩码 metric 1-9999
ping是TCP/IP协议族的一部分,其属于网络层协议。主要是用来检测网络是否通畅。如果要
ping其他网段则需要设置网关。
A.和DNS没关系,DNS设置错会影响访问公网服务器的域名,而不会影响内部子设备直接是否ping通
B.二层交换机如果出现故障那么同网段主机则不会ping通
C.ping命令是跨操作系统的,即Windows主机能ping通Linux主机
302临时重定向,会再次访问http响应头中location字段的url,所以会产生两次http请求
DNS是域名解析协议
IP地址转换成MAC地址是ARP协议的作用
编程题
字符串计数
import java.util.Scanner; /**字符串计数器 * @editor biubiubiu */ public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNextLine()){ String s1=sc.next(); String s2=sc.next(); int len1=sc.nextInt(); int len2=sc.nextInt(); char[] c1=s1.toCharArray(); char[] c2=s2.toCharArray(); int resNum=0; int[] dp=new int[len2+1]; for (int i = 1; i <=len2 ; i++) { //拥有上一个长度字符串个数*26 dp[i]=(dp[i-1]*26)%1000007; //减去s1中每个字符与‘a’的差值 if(i<=s1.length()){ dp[i]=dp[i]-(c1[i-1]-96); } //加上s2中每个字符与‘a’的差值 if (i<=s2.length()){ dp[i]=dp[i]+(c2[i-1]-96); } if (i>=len1){ resNum+=dp[i]; } } System.out.println((resNum-1)%1000007); } } }
最长公共子序列
import java.util.Scanner; /**最长公共子序列 * @editor biubiubiu */ public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNextLine()){ String str=sc.nextLine(); String m=str.split(" ")[0]; String n=str.split(" ")[1]; int[][] ints=new int[m.length()+1][n.length()+1]; for (int i = 0; i <m.length() ; i++) { for (int j = 0; j <n.length() ; j++) { int cur=0; if (m.charAt(i)==n.charAt(j)){ cur++; } //有连续累加内味儿 ints[i+1][j+1]=MaxNum(ints[i][j]+cur,ints[i][j+1],ints[i+1][j]); } } System.out.println(ints[m.length()][n.length()]); } } //输出三者中最大的值; private static int MaxNum(int i, int j, int k) { int max=i; max= Math.max(max, j); max= Math.max(max, k); return max; } }