Java 基础
第三阶段 分析需求、提高代码实现能力
第一章 网络编程
一、网络相关概念
1、网络通信 两台设备 、程序
2、网络
3、ip地址 主机(计算机)的居住地址
ip地址的组成 = 网络地址 + 主机地址
可以类比为:网络地址(北京市海淀区xx小区) + 主机地址(房间号)
ipv4:
ipv6:ipv4不不够分配了。IPv6想要替代ipv4,但目前是两个都在使用。
4、域名 为了解决ip地址记忆的困难
使用http协议 将ip地址
映射
为域名5、端口 主机提供的网络服务(
≠程序
)用两个字节表示端口号,可以表示的范围是0~65535.
0~1024已经被固定的服务占用啦
6、网络通讯协议 网络编程中 数据的组织形式
类比 :人与人 通过 语言交流
TCP/IP协议,中文是传输控制协议/因特网互联协议
TCP 和 UDP
TCP 必须有三次握手、可靠;大数据;效率低【打电话】
UDP 不需要建立连接、不可靠;64KB以内的数据;速度快【发短信】
7、InetAddress类
相关方法:
8、Socket 非常重要,TCP编程、UDP编程都会用
ip地址看作具体的房屋、端口看作 不同的门、socket对象就是门的开关,传输的流或者数据包都当做快递员。
基本介绍
图解
9、基于Socket的TCP网络通信编程
编程样例:
(1)使用字节流
单个客户端:
服务端:先启动
注意:socket传输字节输出流、字节输入流自己不知道数据何时结束,所以每次发送完数据应该手动设置socket.shutdownOutput()。
(2)使用字符流
注意1:socket传输字符输出流、字符输入流,newline()方法标记写入内容结束,所以不需要使用socket.shutdownOutput()。但是要求对方使用readline()读取数据!!!
注意2:但是需要使用.flush()方法手动刷新
(3)网络上传文件
代码演示地址
netstat指令(在dos命令行使用)
TCP网络通信的秘密
10、基于DatagramSocket 和 DatagramPacket 的UDP网络通信编程
注意1:
UDP不再有客户端和服务端的概念,转而成为数据的发送端和接收端
注意2:原理图解
流程
细节1:
DatagramPacket 构造方法中写明了端口和主机地址,表明要发送数据,否则就是接收数据。细节2:
DatagramSocket 创建的端口号,是每个UDP传输方自己准备接收数据的端口,所以每个UDP传输方都应该先占用一个DatagramSocket 类的socket 对象哦,就像一个门,打开一个货运门编程样例:
P678~P683