网络编程
- 1.UDP协议???
- 2.tcp网不好的时候不会丢失数据吗?不会
- 3.为什么要三次握手?
- 4.为什么要四次挥手?
- 5.飞秋发送文件--tcp,聊--UDP
- 6.抓包是不是就是拦截的这两种传输协议数据包?
- 7.IP地址:
- 8.为什么一台电脑同时有ipv4地址和ipv6地址还有物理地址。
- 9.ipconfig:windows Ip 配置
- 10.ping :ip地址(ipv4和ipv6都可以ping)
- 11.可以用网线把两天电脑连在一起。
- 12.计算机中连接网络的软件,都会有一个端口号,通过端口号,就可以找到软件
- 13.tcp通信:
- 14.网络对象流socket.get
- 15.路由器交换机,会自动分配IP
- 16.传文件要来个唯一的文件名,时间戳+随机数.
- 17.结束标记是jvm自己加的.网络流就没有结束标记了.
- 18.int num = is.read();fos.write(num);??确实可以输入int整形
- 19.shutDownOutput,传递一个结束标记,并结束输出流,
- 20.这里写socket.close的作用,也是告之客户端,使用完毕客户端了,所以客户端能读取到-1。
- 21.服务端没有关闭socket,之前,客户端不能关闭socket,否则会出现异常。
1.UDP协议???
2.tcp网不好的时候不会丢失数据吗?不会
有三次握手和四次挥手,保证数据完整性。
3.为什么要三次握手?
4.为什么要四次挥手?
根本原因是,一方发送FIN只表示自己发完了所有要发的数据,但还允许对方继续把没发完的数据发过来。
举个例子:A和B打电话,通话即将结束后,A说“我没啥要说的了”,B回答“我知道了”,但是B可能还会有要说的话,A不能要求B跟着自己的节奏结束通话,于是B可能又巴拉巴拉说了一通,最后B说“我说完了”,A回答“知道了”,这样通话才算结束。
5.飞秋发送文件–tcp,聊–UDP
6.抓包是不是就是拦截的这两种传输协议数据包?
是
7.IP地址:
ipv4:4个字节
ipv6:16个字节,由16进制表示。
8.为什么一台电脑同时有ipv4地址和ipv6地址还有物理地址。
- 电脑连网线访问外网,ipv6,同时电脑开热点,手机连ipv4.
- 物理地址,这里理解成设备的MAC地址,一般是由制造商分配的,是设备的ID,一般是固化的,不会改变的。
ip是动态分配的,只有不够用的时候,才会用ipv6,否则用ipv4
ipv4说的是(在互联网上,联网的计算机太多,ipv4不够分)
IPv4和IPv6地址,简单理解就是可以改变的地址。会由ISP分配(全球可寻址),若是私有局域网可能会静态配置或使用DHCP动态分配。其地址长度 IPv4协议具有32位(4字节)地址长度; IPv6协议具有128位(16字节)
如果从广义上来看,IPv4和IPv6都是三层的地址,MAC是二层地址。分别用于不同的寻址和路由用途。
9.ipconfig:windows Ip 配置
10.ping :ip地址(ipv4和ipv6都可以ping)
ping之前得三次握手
127.0.0.1–localhost,也可以ping域名
11.可以用网线把两天电脑连在一起。
12.计算机中连接网络的软件,都会有一个端口号,通过端口号,就可以找到软件
- 端口号:是一个逻辑端口,无法直接看到
- 端口号,两个字节,范围:2^16=65535 1023已经被操作系统占用了。
打开联网软件的时候,操作系统自动分配一个端口号,或者要一个指定的端口号。
端口号相当于门牌号
- 网络端口:80
- 数据库:mysql:3306 oracle:1521
- tomcat:8080
13.tcp通信:
客户端(套字节)对象里面有两个IO流
Socket对象创建的时候就有两个流
套接字:封装了IP地址和端口号的网络单位。
14.网络对象流socket.get
15.路由器交换机,会自动分配IP
16.传文件要来个唯一的文件名,时间戳+随机数.
17.结束标记是jvm自己加的.网络流就没有结束标记了.
18.int num = is.read();fos.write(num);??确实可以输入int整形
底层native方法.无法窥视
可以定义byte b = (byte)-1;
19.shutDownOutput,传递一个结束标记,并结束输出流,
20.这里写socket.close的作用,也是告之客户端,使用完毕客户端了,所以客户端能读取到-1。
这里写socket.close的作用,也是告之客户端,使用完毕客户端了,所以客户端能读取到-1。
21.服务端没有关闭socket,之前,客户端不能关闭socket,否则会出现异常。
服务端关闭socket可以给客户端传递一个结束标记。