JavaSocket通信

本文详细介绍了Java中的网络基础知识,包括IP地址、端口号、TCP/IP模型、Socket通信模型。讲解了InetAddress、URL、TCP Socket通信及UDP编程的实现步骤,并给出了相关源码示例。
摘要由CSDN通过智能技术生成

子曰:“温故而知新,可以为师矣。”

网络基础知识

两台计算机通过网络进行通信的必备条件:

1、两台计算机要有唯一的标识—IP地址
2、协议
3、相应的端口号。不同的应用程序间的通信,我们需要使用端口号来区分。


TCP/IP 是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合,也称:TCP/IP协议族或TCP/IP协议栈。

TCP:Transmission Control Protocal 传输控制协议

IP:Internet Protocal 互联网协议


TCP/IP的5层模型

1、物理层: 网线等
2、数据链路层:TCP/IP软件的最底层,负责接收IP数据包并通过网络发送或者从网络上接收物理帧,抽出IP数据报,交给IP层。
3、网络层: 是TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,IP协议就是一个网络层协议。
4、传输层: 这一层主要是提供应用程序间的通信,TCP/IP协议族在这一层的协议有 TCP和UDP
5、应用层: TCP/IP协议族在这一层有很多的协议来支持不同的应用,常见的有:访问万维网(www.)用到的http协议、ftp文件传输协议、smtp简单邮件发送协议、dns域名解析协议、telnet远程登录协议等


端口

1、用来区分不同的应用程序
2、端口号范围为0~65535,其中0~1023为系统保留(如http、ftp等)
3、IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础
4、需记住的端口号:http:80; ftp:21; telnet:23;


JAVA中的网络支持

针对网络通信的不同层次,Java提供的网络功能有4大类

1、InetAddress:用于标识网络上的硬件资源
2、URL:统一资源定位符,通过url可以之间读取或写入网络上的数据
3、Sockets:使用TCP协议实现网络通信的Socket相关类
4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信

Socket通信模型
这里写图片描述

InetAddress类

InetAddress类用于标识网络上的硬件资源,即互联网协议(IP)地址
使用方法:

InetAddress address = InetAddress.getLocalHost();
address.getHostAddress(); //ip地址
address.getHostName(); //计算机名

URL

URL(Unoform Resource Locator)统一资源定位符,标识Internet上某一资源的地址
URL由两部分组成:协议名称和资源名称,中间用冒号隔开。

在java.net包中,提供了URL类来表示URL

try{
    //创建一个URL实例
    URL baidu = new URL("http://www.baidu.com");
    //?后面表示参数,#后面表示锚点
    URL url = new URL(baidu, "/index.html?username=tom#test");
    System.out.println("协议:"+url.getProtocol()); //http
    System.out.println("主机:"+url.getHost()); //www.baidu.com
    System.out.println("端口:"+url.getProt()); //如果未指定端口号,则使用默认的端口号,此时getProt()方法返回值为-1
    System.out.println("文件路径:"+url.getPath());//index.html
    System.out.println("文件名:"+url.getFile());//index.html?username=tom
    System.out.println("相对路径:"+url.getRef());//test
    System.out.println("查询字符串:"+url.getQuery());//username<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值