IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Java网络编程/TCP编程 -> 正文阅读

[网络协议]Java网络编程/TCP编程

目录

IP地址相关操作

?URL访问网上资源

?构建URL对象

URL与URLConnection比较

TCP编程


计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个或多个设备(如计算机)之间进行数据传输。Java 语言对网络编程提供了良好的支持。通过其提供的接口我们可以很方便地进行网络编程。

IP地址相关操作

InetAddress Java IP 地址的封装。其下有两个子类 Inet4Address Inet6Address 。这个类的实例经常和UDP DatagramSockets Socket ServerSocket类一起使用InetAddress 没有公开的构造方法,因此你必须通过一系列静态方法中的某一个来获取它的实例。
//www.baidu.com 实际上是主机名称
//IPv4 采用的是点分十进制的记法,所以难以记忆,
// 引入 DNS 可以将一个有含义的字符串和一个 IP 地址建立对应关系,当使用有含义的字符串时可以通过 DNS
换为 IP 地址
//InetAddress 对象中可以封装一个 IP 地址和一个主机名
InetAddress ia = InetAddress . getByName ( "www.baidu.com" ); // 获取对应主机名称的 IP
址,会自动调用 DNS 服务
System . out . println ( ia );
System . out . println ();
InetAddress [] arr = InetAddress . getAllByName ( "www.baidu.com" ); // 获取对应主机
名称的所有注册 IP 地址
for ( InetAddress tmp : arr )
System . out . println ( tmp );
System . out . println ();
// new InetAddress() 没有提供可以直接使用的构造器,所以不能直接 new 创建对象
ia = InetAddress . getLocalHost (); // 获取本地机的 IP 地址
System . out . println ( ia ); //lover/172.30.1.101
ia = InetAddress . getLoopbackAddress (); // 获取回绕地址
System . out . println ( ia ); //localhost/127.0.0.1
System . out . println ( ia . getClass ()); //class java.net.Inet4Address
System . out . println ();
// 通过 IP 地址查询对应信息
InetAddress ia1 = InetAddress . getByName ( "14.215.177.39" );
System . out . println ( ia1 );
// 用于判断是否可以连接 ia 对象对应的主机,可以理解为尝试是否能够 ping
System . out . println ( ia1 . isReachable ( 2000 ));

?URL访问网上资源

URL 对象代表统一资源定位器,是指向互联网资源的指针,资源可以是简单的文件或目录,也可以是对复杂对象的引用,例如对数据库或搜索引擎的查询。用协议名、主机、端口和资源组成,即满足格式
http 协议的标准端口为 80 https=http+SSL 加密数据传输的 http ,标准端口为 443
URL 统一资源指针,可以指定一个具体的资源,例如一个 html 网页
URI 统一资源标识符,可以认为为了方便记忆,给 URL 起的别名

?构建URL对象

创建一个 URL 对象,用于指代网络中的一个资源,如果网址不合法,
则抛出 MalformedURLException
最重要的方法:
  • url.openConnection()URLConnection 可以获取输入、输出流
  • url.openStream()InputStream 直接获取输入流
不重要的方法:
通过 URL 对象的一些方法可以访问该 URL 对应的资源:
  • String getFile():获取该URL的资源名
  • String getHost():获取主机名
  • String getPath():获取路径部分
  • int getPort():获取端口号

URLURLConnection比较

URL URLConnection 的区别在于前者代表一个资源的位置 , 后者代表一种连接
Java 语言提供了两种方法读取数据,一种是通过 URL 对象直接得到相关的网络信息 InputStream is =url.openStream(); ,另一种是先得到一个 URLConnection 实例,再得到 InputStream InputStream 对象,然后读取数据
URLConnection conn = url.openConnection(); 
InputStream is1 = conn.getInputStream(); 
OutputStream os1 = conn.getOutputStream();
前者是一种简单、直接的方法,但缺乏灵活性,并且只能读取只读信息,后者提供了更加灵活有效的方法来读取网络资源

TCP编程

在实际应用中 TCP 网络程序提供可靠的数据通信,而 UDP 网络程序则不保证数据的可靠性,但是协议简单、传输速度快(比如用在音视频数据传输,它们不需要很高的可靠性,偶尔丢帧是可以忍受的)
  • TCPTranfer Control Protocol的 简称,是一种面向连接的端对端的保证可靠传输的协议。
  • 通过TCP协议传输,得到的是一个顺序的无差错的数据流。
发送方和接收方的成对的两个 socket 之间必须建立连接,以便在 TCP 协议的基础上进行通信,当一个socket(通常都是 server socket )等待建立连接时,另一个 socket 可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送 或接收操作。

?

  网络协议 最新文章
Web渗透测试---Web TOP 10 漏洞
记一次公司某招标网站的web渗透(实战第一个
http模块
Apache 2部署SSL证书
HTTP的返回状态码
使用Python的smtplib模块发送简单邮件
qt -- 网络编程UDP
Http请求
TCP三次握手和四次挥手
2021-08-21
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:21:54  更:2022-09-30 01:23:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2022年11日历 -2022/11/28 10:40:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码