网络基本知识,
一, 网络编程相关
1. 我的电脑有网卡,网卡里有mac地址
2. 我到某个地方插上网线,路由器或交换机中的DHCP服务为我自动分配IP地址。
IP: 192.168.13.84 4点分十进制
IPv4
00000000.00000000.00000000.00000000
0~255 0~255 0~255 0~255
IPv6
00000000.00000000.00000000.00000000.00000000.00000000
子网掩码:255.255.255.0
192.168.13.84
255.255.255.0
192.168.12.84
255.255.255.0
网关IP:192.168.13.1
局域网内、城域网、广域网:
广播
单播
广播风暴
arp协议
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
3. DNS
网络连接:
- 域名解析
www.luffycity.com 47.95.64.113 在终端 ping www.luffycity 就可以看到ip
www.oldboyedu.com 101.200.195.98
- 连接
sk = socket.socket()
sk.connect(('47.95.64.113',80))
...
问题来了,域名和IP的对应关系在哪里?
本地:
Win本地电脑:
C:\Windows\System32\drivers\etc\hosts
11.11.11.11 luffycicy.com
Linux/Mac电脑:
/etc/hosts
DNS服务器:全球顶级DNS服务器13台
www.luffycity.com 47.95.64.113
二 多线程
线程与socket的配合
def task(q): a = conn.recv(1024) print(a) conn.send("你好") conn.close() import socket ,threading server = socket.socket() server.bind(("172.0.0.1",8899)) server.listen(5) while 1: conn,addr = server.accept() t = threading.Thread(target = task,args=(conn,))
三 uuid 模块
import uuid v = str(uuid.uuid4()) print(v) #b04ff62e-b9a6-4916-aeff-fce81585aac0 #随机字符串

浙公网安备 33010602011771号