疯狂java讲义第十七章课后习题答案

本文介绍Java网络编程的基础知识,包括InetAddress、URL、URI等类的使用方法,并通过实例演示如何操作这些类。同时探讨了如何搭建简易的家庭服务器,以及在实际操作中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章练习

补充练习
1、InetAddress使用
疯狂java讲义第十七章补充习题第1题答案

2、URLEncoder和URLDecoder使用
URLEncoder.encode()
URLDecoder.decode()
需要相同的字符集,才能解码正确
疯狂java讲义第十七章补充习题第2题答案

3、URL、URI、URLConnection和HttpURLConnection
URL
URL构造器

URL方法
equals() 只要url网址相同就返回true
getAuthority() 和getHost()的区别可以看这篇博客:Java URL getAuthority()用法及代码示例 这里简单说一下,如果url的path文字中www.xx.com:80有后面这个80的话,getAuthority()会完整的返回这个:80,而getHost()不会
getContent(),返回一个object不会用,然后另一个Class参数的重载方法,不懂用
getDefaultPort()
getFile()
getHost()
getPort()
getProtocol()
getQuery() Query指的是http://www.xxx.com?a=b里的?后面的东西
getRef()指的是 #后面的东西
getUserInfo() xxx@xxx
hashCode()
openConnection() 有一个方法涉及到Proxy代理的概念,我还不会
openStream()
sameFile() 没懂除了fragment component是什么意思
==setURLStreamHandlerFactory() ==比较奇怪,看不懂
==toExternalForm()==也没搞懂,返回的和toString()的结果一样
toString() 也就是返回完整网址
toURI()

import java.net.*;
import java.util.*;
import java.nio.charset.*;
import java.io.*;
public class Test
{
	public static void main(String[] args) throws Exception
	{
		//URL
		String path = "http://clips.vorwaerts-gmbh.de:80/big_buck_bunny.mp4";
		URL url1 = new URL(path);
		System.out.println(url1.toString());
		
		path = "https://media.w3.org:443/2010/05/sintel/trailer.mp4";
		URL url2 = new URL(path);
		
		System.out.println(url1.equals(url2));
		
		System.out.println(url1.getAuthority());
		System.out.println(url2.getAuthority());

		//System.out.println(url1.getContent());
		//System.out.println(url2.getContent());

		System.out.println(url1.getDefaultPort());
		System.out.println(url2.getDefaultPort());

		URL url3 = new URL("https://www.l6tvtv.com");
		System.out.println(url3.getDefaultPort());

		System.out.println(url1.getFile());	
		System.out.println(url2.getFile());
		//System.out.println(url3.getFile());

		System.out.println(url1.getHost());
		System.out.println(url2.getHost());

		System.out.println(url1.getPath());
		System.out.println(url2.getPath());

		System.out.println(url1.getPort());
		System.out.println(url2.getPort());

		System.out.println(url1.getProtocol());
		System.out.println(url2.getProtocol());

		System.out.println(url1.getQuery());
		System.out.println(url2.getQuery());

		System.out.println(url1.getRef());
		System.out.println(url2.getRef());

		System.out.println(url1.getUserInfo());
		System.out.println(url2.getUserInfo());

		System.out.println(url1.hashCode());
		System.out.println(url2.hashCode());

		URL url4 = new URL("http://www.baidu.com#aaa");
		URLConnection conn = url4.openConnection();
			
		conn.connect();
		System.out.println(conn.getContent());
	
		InputStream input = url4.openStream();
		byte[] buffer = new byte[1024];
		int hasRead = -1;
		while((hasRead = input.read(buffer)) != -1)
		{
			System.out.println(new String(buffer,Charset.forName("utf-8")));
		}

		System.out.println(url4.sameFile(new URL("http://www.baidu.com#aaa")));

		System.out.println(url4.toExternalForm());
		System.out.println(url3.toExternalForm());
		System.out.println(url4.toString());

		URI uri4 = url4.toURI();
		System.out.println(uri4);
		URI uri3 = url3.toURI();
		System.out.println(uri3);
	}
	
}

URI

4、把家里的主机改装成服务器。我搜了一些资料,感觉自己对服务器的了解太少了,根本看不懂什么内网穿透,看不懂什么SSH、Apach,还有什么内网外网,公网ip,局域网。。。。
我需要专门的学习服务器的相关知识,408的知识不够具体,不够专门。找到了两个博客,一个是实现内网穿透(让外网可以访问本机的某个端口号),一个是tomcat原理。都尝试一下。

用浏览器连接自制服务器的对应端口。如果说可以的话,其实浏览器就是使用socket连接服务器的socketserver,然后服务器接收网址,对网址解析,然后返回对应的html文件。这样是可以的,但是涉及到公网就不行了,我也不知道为什么。。。

有两个问题没有解决,一个是外网,就算是用了cpolar也不能访问这个服务器,但实际上是可以访问那个网址的,而且我的服务器也发出信息了,但是网页显示502错误,这个也是我没弄懂的,配置到服务器也一样,外网访问不了,可能tomcat还有其他很多我没学的东西,另一个是ServerSocket(x,x,inetaddress())这个构造器会报错,Net_Bind,没搜到解答
疯狂java讲义第十七章补充习题第4题答案
2021年12月23日下午,我就是创建了一个服务器,无法使用外网访问,浏览器无法显示,只能用localhost进行访问,浏览器可以显示。我又配置到服务器上进行访问,服务器连响应都不响应了
coplar是会响应,但是浏览器显示502错误

使用浏览器的模式,开发一个世界聊天系统。也就是通过网址的参数输入聊天内容,写入对应的文件的下一行,然后返回这个文件,在浏览器显示。
如果写入后,再写入,则内容是叠加的,不会覆盖之前的网页.

java爬虫(爬取豆瓣电影排行榜)

直接在这里总结,IO的两种方式,字符流和字节流,当然后面要核对一下对不对,或者有没有更好的。
javaIO的两种方式

结合GUI,做出界面,需要一个网址输入框,选择输出文件位置。然后会显示爬取进度,主要的问题是contentLength为-1的问题需要解决。还可以结合正则表达式,跳动的显示一些内容。

做一个在线视频播放器。结合爬虫,爬取电影的链接。

尝试使用暴力破解一个网站的密码,要有一个可视化界面,尝试的密码不停地跳动。背景黑色,数字颜色调成绿色。

使用URLConnection的get请求和post请求

URL和URLConnection底层是不是采用Socket
.能不能用URL和URLConnection连接ServerSocket
可以尝试用URL和URLConnection连接cpolar的网址
会不会浏览器底层是采用URL?URL有什么用?哪里会使用到URL和URLConnect
以及一些输入输出的类,分别在哪里使用
其他的一些包里的类也是这个问题,分别在哪里使用?

我的技术是实在的垃圾,差太远了,需要加紧时间学习,目标就是能够支持像B站一样的项目,还要能够根据自己的想法,开发独一无二的Ui后端处理,或者网络传输部分的程序

要设计一个封装很好的爬虫选择字段软件

尝试写一个应用,手机安装后,启动会在后台通过Socket把手机图库上传到服务器

专门的图片爬虫

开发一个浏览器,

开发一个搜索引擎

尝试能不能用手机流量连接对应的网址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细水长流cpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值