type
status
date
slug
summary
tags
category
icon
password
网络编程的三要素
- IP地址:找到对方主机,点分十进制,每个数字都是由 [0,255]的整数组成eg"192.168.31.1" Java使用的是 InetAddress类来表示一个IP地址对应的主机
- 端口号:找到主机上对应的应用程序,1024之前的端口不能使用,知名的端口号也不要使用比如 3306 MySQL
- 协议:规定数据的传输方式,TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)
InetAddress不能直接创建一个实例对象,需要调用静态方法返回一个实例对象,此类的一个对象就代表着一个具体的IP地址,
getByName(String ip): 根据IP地址获取到对应的主机。
getLocalHost
main方法声明处需要throws
UnknownHostException
实现网络通信需要解决的两个问题
- 如何准确地定位网络上一台或多台主机;定位主机上的特定的应用.
- 找到主机后如何可靠高效地进行数据传输
IP的理解
- IP:唯一的标识 Internet 上的计算机(通信实体)
- 在Java中使用InetAddress类代表IP
- IP分类:IPv4 和 IPv6 ; 万维网 和 局域网
域名解析
域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样才能和主机建立连接。
localhost
本地回路地址:127.0.0.1 对应着:localhost
常用方法
- getHostName():返回本地主机的标准主机名
- getHostAddress():返回主机的IP地址
端口号于IP地址的组合得出一个网络套接字:Socket
OSI对比TCP/IP

TCP对比UDP

TCP三次握手和四次挥手


UDP
UserDatagramProtocol:用户数据报协议
特点: 面向无连接的,收发双发在传递数据之前不需要提前建立连接
没有严格的客户端和服务器之分
UDP传输数据有可能会丢失,效率较高,每次发送数据的范围是64K, 可以用于 视频会议
UDP里通信使用的套接字类型 是 DatagramSocket类
TCP/IP
TransmissionControlProtocol 传输控制协议
面向连接的协议:
收发双方在发送数据之前,先建立好连接(三次握手)
数据发送完成以后,还要再有四次挥手
TCP连接有严格的客户端和服务器之分,特点: 数据传输安全,传输效率低
TCP客户端使用的是 Socket 类,服务器端使用的是 ServerSocket
URL
Uniform Resource Locator,统一资源定位符,对应着互联网的某一资源地址
URL的五个结构

URL常用方法

读取、下载对应的url资源
FTP
本案例由文件下载服务器和文件下载客户端组成
HTTP服务器
- 常用方法
ServerSocket(): 空参构造方法,端口随机分配
ServerSocket(int port): 指定端口
ServerSocket(int port,int backlog): 指定端口和积压
backlog 积压堆积
ServerSocket(int port,int backlog,InetAddredss address): 指定端口号和积压,并指定绑定的地址,address需要本机的IP
127.0.0.1/ localhost: 只能本机通过 127.0.0.1 访问,其他客户端无法访问
192.168.31.160: 本机和其他主机都能通过IP地址访问。本机不能再使用 127.0.0.1访问
对于动态IP地址来说,不合适
0.0.0.0: 表示本机所有可用的地址,如果不指定,绑定的IP地址就是 0.0.0.0
本机可以通过 IP地址和127.0.0.1 访问,其他主机可以通过 IP地址访问
- 作者:tacjin
- 链接:http://jin.wiki/article/baf81662-44d1-4cdc-8df3-79f4beeba03f
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。