Java 网络编程的相关知识
2020-03-08 14:24
941 查看
一、网络编程概述
1、C/S 和 B/S
C/S 是客户端-服务器软件结构,服务提供商给予用户服务需要准备的内容。
- 各大平台的客户端
Android iOS PC Windows Linux macOS - 服务器提供服务
软件更新时,服务器版本更新,同时本地软件也要进行更新操作,这个操作非常耗时。
B/S是浏览器-服务器软件结构,服务提供商只要提供数据服务以及前端数据展示方式就可以了。
- 浏览器提供商非常多
谷歌,火狐,欧朋,Safari,Edge - 服务器提供服务
软件更新时,服务器更新数据,浏览器刷新就可以了。
2、网络通信协议
网络通信协议是要求双方传递数据的计算机必须遵守的,按照对应的网络传输协议才可以进入数据的交互和传递。
目前网络段数据传输比较常见的协议: UDP 和 TCP/IP
3、UDP 和 TCP/IP 的区别
UDP
- 面向无连接,数据传递不是特别安全。
- 因为面向无连接,所以传输速度快。
- 因为面向无连接,所以数据传递存在丢包问题。
- UDP没有客户端和服务器区别,都可以作为发送端和接收端。
UDP协议的使用场景有直播,网络游戏等。
TCP/IP
- 面向连接,数据传递较为安全。
- 因为面向连接,所以传递速度较慢。
- 面向连接,数据传递有保障。
- TCP/IP协议是有明确的服务器和客户端概念。
TCP/IP协议使用场景有客户端登陆,数据下载,文件传输等。
4、网络编程三要素
-
协议
两个台计算机通过网络进行数据传递,都需要对应的协议来完成。 -
IP地址
Internet Protocol Address
当前计算机在网络中的一个地址编号,类似于手机号号码
IP地址有IPv4协议和IPv6协议
IPv4是一个32位的二进制数,通常展示效果是a.b.c.d 例如 192.168.1.1
a.b.c.d 各代表0 ~ 255的数字,目前已经消耗殆尽 42亿个
IPv6能够保证地球上的每一粒沙子都有一个IP地址
128位地址长度,16字节一组
8组 0x0 ~ 0xFFFF -
端口号
端口号是当前应用程序在计算机中的一个编号。可以让计算机明确知道,当前的数据是给予哪一个程序使用,或者数据从哪一个程序出现的。
端口号是一个short类型 0 ~ 65535
0~1024不能用于自定义端口号使用,是特定的系统端口号。
二、IP类
SUN公司提供给开发者使用的IP地址类:InetAddress类
1、常用方法
InetAddress getLocalhost(); 获取本机IP地址类对象 InetAddress getByName(String str); 根据指定的主机名获取对应的IP地址对象 InetAddress[] getAllByName(String str); 根据指定主机名获取域名对应的所有IP地址类对象
2、使用演示
public class Demo { public static void main(String[] args) throws UnknownHostException { //获取本机IP地址类对象 InetAddress localHost = InetAddress.getLocalHost(); System.out.println(localHost); //根据指定的域名获取对应的IP地址对象 InetAddress byName = InetAddress.getByName("www.csdn.net"); System.out.println(byName); //根据指定主机名获取域名对应的所有IP地址类对象 InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com"); for (InetAddress inetAddress : allByName) { System.out.println(inetAddress); } } }
- 点赞 2
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java网络编程相关知识铺垫
- java网络编程基础知识
- java 网络编程基础知识
- 【Java基础】Java网络编程基础知识
- Java编程高级之Java网络编程知识基础
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
- Java基础知识强化之网络编程笔记19:Android网络通信之 HttpClient和传统Post、Get方式的区别
- java网络编程,非常详细,适合初学者的java网络编程知识(转载)
- 黑马程序员_Java基础_网络编程相关小项目
- Windows网络编程笔记4 -- Winsock 协议相关知识
- 编程基础知识——Java相关的“编码”问题
- Java基础知识强化之网络编程笔记06:TCP之TCP协议发送数据 和 接收数据
- Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)
- Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈
- Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈
- java 网络编程【4】 TCP详解及其相关实例
- java网络编程知识整理
- Java网络编程:基础知识
- Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介