| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Day25 网络编程、正则表达式 -> 正文阅读 |
|
[网络协议]Day25 网络编程、正则表达式 |
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 TCP1.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 UDP1.3.2.1 概述 1.3.2.2 常用方法? 1.3.2.3 服务端? 1.3.2.4 客户端 1.3.3 UDP和TCP 区别?2. 网络编程?2.1 概述 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 13:06:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |