Day25 网络编程、正则表达式

本文详细介绍了Java网络编程的基础,包括IP地址和端口号的概念,重点讲解了TCP和UDP协议的原理、Socket编程实战,以及它们在服务端与客户端的区别。

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

1. 网络编程

1.1 概述

Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。

Java提供的网络类库,可以实现无痛的网络连接,联网的底层 细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并 且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一 的网络编程环境。

1.2 网络通信

1.2.1 通信之IP地址 

通信双方地址

a)IP

b)端口号

一定的规则(即:网络通信协议。有两套参考模型)

c)OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广

d)TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。

2.1.通信要素1:IP地址

IP 地址:InetAddress

唯一的标识 Internet 上的计算机(通信实体)

本地回环地址(hostAddress):127.0.0.1    主机名(hostName):localhost

IP地址分类方式1:IPV4 和 IPV6

IPV4:4个字节组成,4个0-255。大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。以点分十进制表示,如192.168.0.1

IPV6:128位(16个字节),写成8个无符号整数,每个整数用四个十六进制位表示, 数之间用冒号(:)分开,如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

IP地址分类方式2:公网地址(万维网使用)和私有地址(局域网使用)。192.168.  开头的就是私有址址,范围即为192.168.0.0--192.168.255.255,专门为组织机 构内部使用

特点:不易记忆

1.2.2 通信之端口号

1.3 网络协议

1.3.1 TCP

1.3.1.1 概述

1.3.1.2 Scoket 

利用套接字(Socket)开发网络应用程序早已被广泛的采用,以至于成为事实 上的标准。

网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标 识符套接字。

通信的两端都要有Socket,是两台机器间通信的端点。

网络通信其实就是Socket间的通信。

Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。

一般主动发起通信的应用程序属客户端,等待通信请求的为服务端。

Socket分类:

流套接字(stream socket):使用TCP提供可依赖的字节流服务数据报套接字(datagram socket):使用UDP提供“尽力而为”的数据报服务

 1.3.1.3 常用方法

Socket类的常用构造器:

public Socket(InetAddress address,int port)创建一个流套接字并将其连接到指定IP 地址的指定端口号。

public Socket(String host,int port)创建一个流套接字并将其连接到指定主机上的指定端口号。

Socket类的常用方法:

public InputStream getInputStream()返回此套接字的输入流。可以用于接收网络消息

public OutputStream getOutputStream()返回此套接字的输出流。可以用于发送网络消息

public InetAddress getInetAddress()此套接字连接到的远程 IP 地址;如果套接字是未连接的,则返回 null。

public InetAddress getLocalAddress()获取套接字绑定的本地地址。 即本端的IP地址

public int getPort()此套接字连接到的远程端口号;如果尚未连接套接字,则返回 0。

public int getLocalPort()返回此套接字绑定到的本地端口。 如果尚未绑定套接字,则返回 -1。即本端的 端口号。

public void close()关闭此套接字。套接字被关闭后,便不可在以后的网络连接中使用(即无法重新连接 或重新绑定)。需要创建新的套接字对象。 关闭此套接字也将会关闭该套接字的 InputStream 和 OutputStream。

public void shutdownInput()如果在套接字上调用 shutdownInput() 后从套接字输入流读取内容,则流将 返回EOF(文件结束符)。 即不能在从此套接字的输入流中接收任何数据。

public void shutdownOutput()禁用此套接字的输出流。对于 TCP 套接字,任何以前写入的数据都将被发 送,并且后跟 TCP 的正常连接终止序列。 如果在套接字上调用 shutdownOutput() 后写入套接字输出流,  则该流将抛出 IOException。 即不能通过此套接字的输出流发送任何数据。

1.3.1.4 服务端

1.3.1.5 客户端 

1.3.1.6 多线程阻塞式交互 

1.3.2 UDP

1.3.2.1 概述

1.3.2.2 常用方法 

1.3.2.3 服务端 

1.3.2.4 客户端

1.3.3 UDP和TCP 区别 

2. 网络编程 

2.1 概述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值