后台开发
网络UDP
无连接,不可靠,但是速度快,可以广播?
资源开销小,每个udp包最大64K
但是可能会丢包,没有流量控制,发送方一直发送数据当网卡缓冲区接受数据满了,电脑会出现卡死,所有接收方需要及时接受数据
流量控制
TCP的流量控制
拆包
sep = ‘’ print函数输出的分隔符
ifconfig
显示或者配置网设备信息,网卡
[root@www ~]# ifconfig {interface} {up,down} #观察与启动接口
[root@www ~]# ifconfig interface {options} #设定与修改接口
选项与参数:
interface:网络卡接口代号,包括 eth0, eth1等
options :可以接的参数,包括如下:
up, down :启动 (up) 关闭 (down)
mtu :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)
netmask :子网掩码;
broadcast:广播地址
[root@www ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2555 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:239892 (234.2 KiB) TX bytes:11153 (10.8 KiB)
# eth0:网卡名称
# HWaddr:网卡的硬件地址,俗称的MAC地址
# inet addr:IPv4 的IP地址,后续的Bcast,Mask分别代表的是广播地址与子网掩码
# inet6 addr:是IPv6的版本的IP
# MTU:网络最大传输单元
# RX:那一行代表的是网络由启动到目前为止的封包接收情况,packets 代表封包数、errors代表封包发生错误的数量、dropped代表封包由于有问题而遭丢弃的数量
# TX:与 RX 相反,为网络由启动到目前为止的传送情况;
# collisions:代表封包碰撞的情况,如果发生太多次,表明网络状况不太好
# txqueuelen:传输数据的缓冲区的储存长度
# RX bytes, TX bytes:总接收、发送字节总量
[root@www ~]# ifconfig eth0 192.168.100.100
# 设置eth0的ip地址为192.168.100.100
[root@www ~]# ifconfig eth0 192.168.100.100
netmask 255.255.255.0 mtu 8000
#设置eth0的ip地址,子网掩码,mtu
[root@www ~]# ifconfig eth0:0 192.168.50.50/24
[root@www ~]# ifconfig eth0:0 192.168.50.51/24
#在eth0网卡上再配置两个ip,相当于虚拟两个网络接口
[root@www ~]# ifconfig eth0 down
# 关闭网卡eth0
[root@www ~]# ifconfig eth0 up
# 启动网卡eth0
mac地址限制上网,发送广播,广播地址255.255.255.255或者broadcast
ping
检测网络是否正常
丢个包看能不能收到
ping 公网IP
ping 私有IP
ping 回环地址
目标编码和解码
str->bytes :encode编码
bytes->str :decode解码
目的
让不同电脑的进程能通过网络传送数据,通信
IP地址分类
- IP地址:标记在网络中的位置
- 分类:A类 1字节网络地址3字节主机地址,最高位是0:1.0.0. -1——126.255.255.254
127.0.0.1-127.255.255.255用于回路测试 本机IP127.0.0.1
私有IP:
就是本地局域网里的ip,对应的是公有ip,不能在互联网上访问,要想访问私有IP,需要nat转换为公有ip
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
局域网
ipv4:4个数字用,分开 2^8=255
ipv6:6个数字用:分开
dns服务器解析域名为公网IP
端口
端口就好比一座房子的门,是进出房子的必经之路
端口号从0-65535 2^16
端口分配规则:
一些【常见、知名、系统】端口:
0-1023
80 http
20/21 ftp
23
25
动态端口
是1024-65535,被系统动态分配给要通信的进程
natstat -an 查看端口
lsof -i:9090 看端口谁在用
kill -9 强制杀死进程
udp服务器绑定端口
bind方法
socket
传输层协议
所有网络上进程间通信都是底层都是用socket,相当于数据的搬运工
socket(简称 套接字) 是进程间通信的一种方式
网络编程 socket
创建socket
建立连接
发送数据
数据编码.encode 数据解码 .decode
关闭socket
udp广播
socket.setsockopt(套接字,选项,[True,False])
udp socket
客户端:
1:socket()
2:sendto()
3:recvfrom()
阻塞等到收到数据
4:close()
客户端:
1:socket()
2:bind() #绑定网卡IP,端口,把端口固定下来
3:recvfrom()
一直阻塞到收到客户端的sendto()
4:sendto()
5:close()
1:创建套接字
2:发送或者接受套接字
3:关闭套接字
补充
在windows里写汉字 ‘w’,encoding=utf-8