day23
-
- 网络编程
-
- 网络编程三要素:
-
- IP地址
- 端口号
- 通信协议
- TCP协议
- UDP协议
网络编程
1、网络:计算机网络,由在不同地理位置、不同的计算机主机,互联形成的一个计算机系统。有通讯和数据共享的作用。
2、网络编程:在已经拥有完备成熟的网络系统之后,在整个基础上,使用网络进行编程,对应用层进行设计的活动。
网络编程三要素:
IP地址
1、在一个计算机网络中,某台计算机在网络中的唯一标志
2、分类:
IPv4:
使用4个0-255的数字,来表示一个ip地址,32位,2^32个地址,将近43亿
IPV4的四个数字的规则:
前三个 数字:代表当前电脑所属的子网
最后一个数字:代表在这个子网下每一个电脑的编号,在同一个子网下,不可能出现
相同的编号,如果有,就会报IP地址冲突
最后一个数字有几个特别的数字:
0表示当前子网的编号
255表示广播地址(在整个子网中的所有地址,都会接收到发送到广播地址的数据)
特殊的IP地址:127.0.0.1,表示本地回环地址,对应有个域名localhost
相关的命令:ipconfig(查询当前网卡信息) ping(查看某个IP是否联通)
IPv6:
由8组数字组成,每组数字都是4个16进制数(16的32次方)
地球上每一粒沙子都有一个ip地址

端口号
通信协议
网络分层:就是分工,为了每一个单位都可以非常专业的做自己的事情
应用层:http协议、https协议、FTP协议
传输层:UDP协议、TCP协议
网络层:IP协议、路由协议
物理层:底层硬件设备、数据的完整和校验
协议:
各个计算机网络传输的一个规范: 协议分为7层
主要说的是传输层 : TCP UDP + xmpp 协议 ==> 即时通讯(qq,微信)
web阶段主要: http 协议 https 协议
UDP面向无连接的协议: 传输的数据快,但是可以会丢数据(cts飞q) 会出现卡顿
TCP 面向连接的协议: 传输慢,不会丢失数据(三次握手) ==>qq传消息 文字需要准确性,使用的就是这个协议
http 与https==>都是属于一次性的连接==>也就是客户端给服务器发送请求,当交互完,这个请求就断开了
https =http+ssl 证书,这个证书保证数据的传输的安全性 大部分上线的网站都会使用https协议
TCP协议
- 实例化这个socket对象
-
通过socket对象 得到输出流 OutputStream
3.调用 write()
-
shutdownOutput()
5.拿到输入流 InputStream
-
new BufferReader(new InputStreamReader(new FileInputStream))
7.关闭资源
多线程
如果有两个客户端, 一个服务器,就会产生这样一个错误 Connection refused: connect
解决这个问题 : 是用多线程解决这个问题 : 解决多个客户端对应一个服务器的问题
使用socket实现文件上传的功能
UDP协议
基于udp比较繁琐, 没有获取流对象的方法,所有只能够按照以上的方法区操作
开发使用的是第三方 环信与融云(sdk) tcp+udp 即时通信