网络编程
端口
总共65535(216)个端口
知名端口:0-1023
80-HTTP服务
21-FTP服务
动态端口:1024-65535
不固定分配某种服务
IP地址
ip:网络地址和主机地址组成
分类:A类、B类、C类、D类,区分什么类看子网掩码
dns:域名解析器 http://14.215.177.39/ = https://www.baidu.com/
注:127.0.0.1表示本机ip
TCP和UDP
tcp:(传输控制协议),通信之前必须建立可靠的连接,通信过程可以简略的描述成三次握手,四次挥手
通过下面一段话进行理解:
三次握手:是A吗->是的,我是A->确定是A了->开始聊天
四次挥手:我下线了->好的->下次聊->好的->断开连接
udp:不需要建立连接,尽可能快速的将信息扔到网络上,多用来广播
Socket
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
#服务器 import socket server=socket.socket() server.bind(("localhost",6969)) #绑定 server.listen() #监听连接 print("等待消息...") con,addr=server.accept() #等待消息 print("连接上了") print("con:",con) print("addr:",addr) data=con.recv(1024) print("接收到:",data) server.close()
#客户端 import socket client=socket.socket() #生成socket连接对象 client.connect(("localhost",6969)) #和服务器建立连接 client.send("hellow world".encode())#向对方发送数据 client.close()
con: <socket.socket fd=704, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6969), raddr=('127.0.0.1', 9523)>
addr: ('127.0.0.1', 9523)