简单说一些常见的协议所属的OIS层:
应用层:远程登录协议Telnet、文件传输协议FTP,超文本传输协议HTTP,域名服务DNS,简单邮件传输协议SMTP,邮局协议POP3等
传输层:传输控制协议TCP—-面向连接的可靠传输协议,用户数据报协议UDP—–是无连接的,不可靠的传输协议
网络层:网际协议IP,Internet互联网控制报文协议ICMP、Internet组管理协议IGMP
TCP:Transfer Control Protocol面向连接的可靠传输协议
发送方和接收方需要建立连接。双方之间的通信通过socket
一方的socket(通常是Server Socket)等待建立连接,另一方的socket可以要求进行连接。一旦两个socket连接起来,双方就可以进行双向的数据传输,双方都可以进行发送和接受数据的操作
传输的数据大小没有限制
HTTP、FTP、Telnet等应用都需要这种可靠的通信通道
UDP:User Datagram Protocol用户数据报协议。
无连接的协议,每个数据包都是一个独立的信息,包括完整的源地址或目的地址。
在网络上以任何可能得路径传往目的地,因此是否到达目的地,到达目的地的时间及内容的正确性都是不能被保证的;发送的内容可能无序
传输数据的大小有限制,每个被传输的数据报必须限定在64KB之内
IP:用来标识网络上的计算机
端口号:用来指明该计算机的应用程序。16位数字表示,范围是0~65535,1024以下的端口号保留给预定义的服务。如,http使用80端口
Java中,通过java.net包中的类,Java程序能够使用TCP或UDP协议在互联网上进行通讯
URL:Uniform Reosurce Locator统一资源定位符,表示Internet上某一资源的地址,通过URL我们可以访问Internet上的各种网络资源
URL:协议标识符—-HTTP,FTP,File+资源名字—主机名,文件名,端口号,引用
eg:http://java.su.com:80/docs/books/tutorial/index.html#DOWN
Java中,可以创建表示URL地址的URL对象。
通过该URL对象,可以获得URL对象的各个属性及获得URL的实际比特或内容消息。
/**
getDefaultPort(): 返回默认的端口号。
getFile(): 获得URL指定资源的完整文件名。
getHost(): 返回主机名。
getPath(): 返回指定资源的路径。
getPort(): 返回端口号,默认为-1。
getProtocol(): 返回表示URL中协议的字符串对象。
getRef(): 返回URL中的HTML文档标记,即#号标记。
getUserInfo: 返回用户信息。
toString: 返回完整的URL字符串。
*/
public class UrlTest1 {
public static void main(String[] args) throws MalformedURLException {
URL url = new URL("http://java.su.com:80/docs/books/tutorial/index.html#DOWN");
System.out.println("URL 是 " + url.toString());
System.out.println("协议是 " + url.getProtocol());
System.out.println("文件名是 " + url.getFile());
System.out.println("主机是 " + url.getHost());
System.out.println("路径是 " + url.getPath());
System.out.println("端口号是 " + url.getPort());
System.out.println("默认端口号是 "+url.getDefaultPort());
System.out.println("引用 "+url.getRef());
}
}
输出结果:
URL 是 http://java.su.com:80/docs/books/tutorial/index.html#DOWN
协议是 http
文件名是 /docs/books/tutorial/index.html
主机是 java.su.com
路径是 /docs/books/tutorial/index.html
端口号是 80
默认端口号是 80
引用 DOWN
/**
*通过URL对象获得URLConnection对象,代表应用程序和URL之间的通信连接,此类的实例可用于读取和写入此URL引用的资源
*/
public class UrlTest2 {
public static void main(String[] args) throws IOException {
URL url = new URL("https://www.baidu.com");