Java网络编程(基于TCP和UDP的通信实现)

简单说一些常见的协议所属的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");
      
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值