1、Java SE 107 使用 Java 网络 API 访问远程服务器一、两类传输协议:TCP,UDP解说:通常用于传递音频或者是视频我们常用的一些应用协议 HTTP、FTP、Telnet 全都是基于 TCP 的二、端口三、数据封装四、TCP/IP 模型五、TCP/IP 与 OSI 参考模型的对应关系六、JDK 中的网络类七、创建和使用 URL 访问网上资源对于 HTTP 应用来说,它的默认端口是 80,你不指定 80,它也会将请求转到 80 端口号上。因此对于 HTTP 协议写不写 80 都行,但是如果对方的主机,没有将它的服务器监听的端口号设置为 80,就必须显示的指定好端口号是什么。pac
2、kage work;import .MalformedURLException;import .URL;public class Url1 /* 获取URL各部分的信息*/public static void main(String args) throws MalformedURLException URL url = new URL(“http:/:80/docs/books/tutorial/index.html#DOWN“);/获得协议的名字String protocal = url.getProtocol();/获得主机的名字String host = url.getHost();/
3、获取文件的名字String file = url.getFile();int port = url.getPort();String ref = url.getRef();System.out.println(protocal + “ , “+host+“ , “+file+“ , “+port+“ , “ + ref);1、构造 URL 对象然后通过 URL 这个对象去访问网络资源解说:openConnection()方法会打开一个连接,返回一个 URLConnection 对象,即与远程的连接就已经建立好了。HTTP、FTP 都是基于 TCP 的,所以都要以流的方式在连接上进行双向数据的传
4、递,打开连接之后,就可以从远程获得到输入流,流拿到之后,就可以获取到字节数据了。只要连接建立之后,就可以从输入流里面去获取到我想要的信息了。例 1:package work;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import .URL;import .URLConnection;public class UrlConnection1 public static void main(String args) throws Exception URL url =
5、new URL(“http:/“);URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();OutputStream os = new FileOutputStream(“infoq.txt“);byte buffer = new byte2048;int length = 0 ; while(-1 != (length = is.read(buffer,0,buffer.length)os.write(buffer,0,length);is.close();os.close();例二、直
6、接通过 URL 类来打开输入流。package work;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import .URL;public class UrlConnection2 public static void main(String args) throws Exception URL url = new URL(“http:/“);/ URLConnection conn = url.openConnection();/ InputStream is = conn.getInputStream();InputStream is = url.openStream();OutputStream os = new FileOutputStream(“infoq.txt“);byte buffer = new byte2048;int length = 0 ; while(-1 != (length = is.read(buffer,0,buffer.length)os.write(buffer,0,length);is.close();os.close();