java seek指针 换行符_Java网络编程探究|乐字节

大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程。

主要内容如下:

  • 网络
  • 网络分层
  • IP位置
  • 端口port
  • 网络编程

7883a26702d1b07953e729cf5cd710a4.png

一、 网络

1、概念

网络即将不同区域的电脑连接到一起, 组成局域网、城域网或广域网。把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。

cb8a3b92a9243e47391d161518cabb1e.png

2、主要功能


• 资源共享
• 信息传输与集中处理
• 均衡负荷与分布处理

3、网络通信协议

计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传

输控制步骤、出错控制等制定标准。

4、网络通信接口

为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换。接口包括两部分:

• 硬件装置: 实现结点之间的信息传送;
• 软件装置: 规定双方进行通信的约定协议

二、 网络分层

由于结点之间联系很复杂,在制定协议时,把复杂成份分解成 一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。

1、 通信协议的分层

64df8c305c1b6c09a203cf8a84ac9f8e.png

2、封装

封装:从上往下,加入相关层的协议控制信息

b38a5f9615f67dca34b86c4a9e452217.png

3、拆封

拆封:获取数据,从下往上,去除相关层的协议的控制信息

63c77c052343d9ad1290a71661782d48.png

三、 IP位置


( IP) 是 Internet Protocol 的外语缩写, 网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。 在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP 协议就可以与因特网互连互通。


端口:区分数据流向的软件 0-65535 不要使用 1024 以下的端口 ,每一个协议拥有自己的端口,在同一个协议下端口不能重复 FTP:21 HTTP:80

四、端口:port


端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。可以类比为:IP 相当于公司,端口相当于公司各部门,URL,相当于各部门的人员。

五、资源的传输协议


TCP:TCP(transfer control protocol) 打电话 面向连接、安全、可靠,效率低
UDP:UDP(UserDatagramProtocol ) 发送短信 非面向连接、不安全、数据可能丢失 、效率高

六、网络编程

1、InetAddress
封装计算机的 ip 地址和 DNS( Domain Name System,域名系统) ,没有端口。
1)、方法
InetAddress.getLocalHost();
InetAddress.getByName("http://www.163.com");
InetAddress.getByName("223.87.1.58")


2) 、方法
getHostAddress() 返回 ip 地址
getHostName() 返回域名|本机为计算机名

2、InetSocketAddress
包含端口,用于 socket 通信的
1) 、获取对象
InetSocketAddress(String hostname, int port)
InetSocketAddress(InetAddress addr, int port)


2) 、方法
getAddress() 返回 InetAddress 对象
getPort() 返回端口
getHostName() 返回域名

3 、URL
1) 、URI(Uniform resource identifier)
统一资源标识符, 用来唯一的标识一个资源。


2) 、URL( Uniform Resource Locator)
统一资源定位器,它是一种具体的 URI 。统一资源定位符,由 4 部分组成:协议 、存
放资源的主机域名、资源文件名和端口号。 URL是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。


3) 、网络爬虫原理

public static void main(String[] args) throws IOException {URL url=new URL("http://www.baidu.com");//主页	默认资源
//获取资源    网络流      可能会出现乱码:1、字节数不够	2、编码解码格式不统一/*InputStream is=url.openStream();byte[]flush=new byte[1024];int len=0;while(-1!=(len=is.read(flush))){System.out.println(new String(flush,0,len));}is.close();*/BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu2.html"),"utf-8"));String msg=null;while((msg=br.readLine())!=null){//将网络内容下载到本地。然后进行数据分析,建立索引,这也是搜索引擎的第一步。bw.append(msg);bw.newLine();//新增方法	插入换行符}bw.flush();//强制刷出bw.close();br.close();}

4、UDP编程: DatagramSocket DatagramPacket

UserDatagramProtocol,一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。其特点为:非面向连接;传输不可靠;数据可能丢失。

9c17b5c296999635c4109de61ea7fb0c.png

1)、服务器:
①创建服务器 DatagramSocket类 +指定端口
②准备接收容器 字节数组 +封装成DatagramPacket数据包
③接收数据
④分析数据
⑤释放资源

2)、客户端:
①创建客户端 DatagramSocket类 +指定端口
②准备数据 字节数组
③封装成数据包 需要指定包发送的地址+端口 即服务器地与端口
④发送数据
⑤释放资源

5、TCP 编程:ServerSocket Socket

transfer control protocol,一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议的点到点的通信 。TCP 三次握手(Three-way Handshake),类似于拨打电话

1) 、特点

基于 tcp 协议,建立稳定连接的点对点的通信;实时、快速、安全性高、占用系统资源多、效率低;“请求-响应”模式:

a)、客户端:在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序

b)、服务器:第一次通讯中等待连接的程序被称作服务器端(Server)程序

Socket:发送 TCP 消息

ServerSocket:创建服务器

套接字是一种进程间的数据交换机制。这些进程既可以在同一机器上,也可以在通过网

络连接的不同机器上。换句话说,套接字起到通信端点的作用。单个套接字是一个端点,

而一对套接字则构成一个双向通信信道,使非关联进程可以在本地或通过网络进行数据

交换。一旦建立套接字连接,数据即可在相同或不同的系统中双向或单向发送,直到其

中一个端点关闭连接

2) 、服务器:

①创建服务器 指定端口

②等待客户端连接

③分析接收数据

3) 、客户端:

①连接服务器: 创建客户端 +指定服务器地址 +端口

②发送数据

乐字节原创,转载请注明出处。

关于网络编程就讲到这里了,更多Java干货请继续关注乐字节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

switch 条件判断_C语言学习第7篇---C语言三大结构之一判断结构

if语句分析1.if语句用于根据条件选择执行语句2.else不能独立存在且总是与它最近的if想匹配3.else语句后可以接其他if语句if语句中零值比较的注意点---bool型变量应该直接出现在条件中,不要进行比较---变量和0值进行比较时,0值应该出现在比较符合左边---f…

计算机应用基础授课提纲,《计算机应用基础》讲授提纲(1).ppt

《计算机应用基础》讲授提纲(1).ppt (49页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分*第四讲 Windows基础基本操作文件操作控制面板中文操作处理磁盘管理命令提示符*Windows 基本操作桌…

工业机器人演示码垛和卸垛_众多企业购买自动码垛机的原因是什么?

企业为什么要购买自动码垛机呢?难道仅仅是因为它可以自动,让工作变得轻松简单吗?当然不是,如果自动码垛机仅仅能够为企业带来这么点的好处的话,相信是没有企业愿意花大价钱来购买这些自动码垛机的,那么企业究竟是看中了自动码垛…

python 100days github_GitHub - rghwer/Python-100-Days: Python - 100天从新手到大师

Python - 100天从新手到大师 作者:骆昊 最近有很多想学习Python的小伙伴陆陆续续加入我们的交流群,目前我们的交流群人数已经超过一万人,光靠我自己已经无法及时处理小伙伴们的入群申请,更无法及时为大家解答问题。目前我的想法是…

python期末项目书怎么写_自己写了一部书怎么出版

一部书从无到有,包括编写和出版。编写可以自己写,但出版的问题,得靠规定的出版途径来解决。那么,自己写了一部书怎么出版?通常包括两种方法:找出版社直接合作公费出版和找出版公司合作自费出版。自己写了一部书怎么出…

分页请求json数据_Python爬虫入门教程 28-100 虎嗅网文章数据抓取 pyspider

1. 虎嗅网文章数据----写在前面 今天继续使用pyspider爬取数据,很不幸,虎嗅资讯网被我选中了,网址为 https://www.huxiu.com/ 爬的就是它的资讯频道,本文章仅供学习交流使用,切勿用作其他用途。常规操作,分…

bootstrap 导航菜单 折叠位置_教大家如何编写一个网页导航条

导航条简单地说就是对你整个网站模块的简单介绍,你可以直接点击导航条某一个按钮或板块便可进入其相应的界面,如:网页、新闻、贴吧等 。在企业网站上,导航条上常见的有:产品介绍,公司简介,最新产…

python拟合函数_Python-最小二乘法曲线拟合

行文思路:最小二乘法原理介绍 利用 leastsq() 函数进行最小二乘法拟合 拟合注意事项 利用curve_fit 进行最小二乘法拟合 总结: 参考文献 实现代码 一,最小二乘法拟合 最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数…

计算机网络提高网络安全意识,提升网络安全意识 共创清朗网络环境

为增强公众网络安全意识,提高网络安全防护技能。近期,徐家营街道围绕“网络安全为人民、网络安全靠人民”活动主题,组织开展了“2020国家网络安全宣传周”活动,保障用户合法权益,维护国家网络安全。一、广泛宣传引导。…

base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结

前段时间学习了分布式事务的几种方案,下面主要总结下基于本地消息表实现可靠消息最终一致性的分布式事务方案。1,什么是分布式事务?在传统架构中往往是一个单体架构,一个系统就对应一个war包,然后这个系统也只有一个数…

google protobuf_protobuf 指南

简介安装语言定义特殊指令定义服务JSON 支持选项生成代码基础类型更新 messageGolang 下使用参考简介Protocol Buffers 是 google 出品的一种数据交换格式, 缩写为 protobuf.主要介绍 proto3 版本和 Golang 下的使用.安装protobuf 分为编译器和运行时两部分. 编译器直接使用预编…

计算机无法装补丁,电脑无法安装kb4012212补丁如何处理|电脑无法安装kb4012212补丁的处理方法...

最近,不少用户的电脑都被《永恒之蓝》病毒侵袭,因此微软官方推出了预防补丁 — kb4012212,正常系统只要安装该补丁就能避免电脑遭到伤害。不过,有用户反馈自己遇到了电脑无法安装kb4012212补丁的情况,该怎么办呢&#…

mysql在哪里写代码_[译] 如何写好 Go 代码

原文:https://scene-si.org/2018/07/24/writing-great-go-code/我写了多年的 Go 微服务,并在写完两本关于 (API Foundations in Go 和 12 Factor Applications with Docker and Go) 主题的书之后,有了一些关于如何写好 Go 代码的想法但首先&a…

学画画软件app推荐_路由器管理软件哪个好?6款路由器管理APP推荐_软件评测

无限网络应用越来越广泛,由此应运而生了许多可以蹭网的软件,家里的网速突然变慢了,也许就是隔壁的小哥哥小姐姐在蹭网络,那么如何避免被蹭网?今天小编给各位小伙伴推荐几款路由器管理软件,发现网络变慢了&a…

各个图标的意思_冬奥体育图标设计团队负责人林存真:每一个图标要画100稿以上...

林存真中央美术学院设计学院副院长、北京冬奥组委文化活动部形象景观艺术总监、北京冬奥会体育图标设计团队负责人。12月31日晚,北京2022年冬奥会和冬残奥会体育图标正式发布。在体育图标发布前夕,新京报记者采访了北京冬奥会体育图标设计团队的负责人&a…

delphi制作上下开幕效果_2019中超联赛揭幕战在深圳举行 现场开幕式亮点多多

3月2日晚,2019中超联赛开幕式在深圳大运中心体育场举行。随着中国足协党委书记杜兆才正式宣布2019年中超联赛开幕,以“超精彩”为口号的2019新赛季中超联赛正式打响。本赛季中超联赛是出台“注资帽”、“薪酬帽”、“奖金帽”、“转会帽”之后的第一个赛…

ae正在发生崩溃_AE错误:正在发生崩溃的解决方法,原创问题解决方案

AE在使用过程中,可能会出现一些问题。有的问题是莫名其妙出现。例如刚刚还在正常使用AE软件,下一次再打开的时候就会出现问题。今天给大家说的是如何去解决after effects错误:正在发生崩溃这个问题 。该问题所提供的解决方法为实际操作过,并成功解决。所以才写出来给大家提…

计算机二级公共,计算机二级公共基础知识

计算机二级公共基础知识计算机二级考试包括计算机基础知识。虽然分值不高但是我们还是要把握好每一分。下面百分网小编整理了相关计算机二级公共基础知识,希望大家喜欢。计算机二级公共基础知识1.1栈和队列1、栈及其基本运算栈是限定在一端进行插入与删除运算的线性…

echarts map 点击地图区域变色_绘制炫酷的地图,不只是pyecharts.map!

导读:地图可视化是一种非常直观的数据分析结果展现形式,python有很多可视化库可以实现,pyecharts就是很多python爱好者喜爱的实现地图可视化方法之一。不可否认,pyecharts绘制的地图实现方便、图形美观而且支持交互,但…

金蝶kis专业版公网访问_金蝶KIS云专业版—【账务处理】进阶操作101问

对KIS专业版【账务处理】模块日常操作之外的各种问题进行回答,帮助老师们快速进阶此模块的操作,提高软件的便利性。1.专业版资产负债表如何移动表页位置?【操作步骤】 1、单击【报表与分析】-【资产负债表】;2、单击左上角菜单栏【…