IP 地址: 用来标记网络中的一台计算机,即通信实体的地址 网络号+主机号 A-E五类地址,常用C类
目前主流的IP地址是IPV4,IPV6
IP地址实际上是一个32位的整数,以字符串表示的IP地址实际上是把32位整数按8位分组后的数字表示
127.0.0.1 本机地址
192.168.0.0
端口: 端口是虚拟的概念,端口表示一个16位的二进制整数0-65535
协议: 计算机网络实现通信必须要有的约定即通信协议 网络协议的基本框架OSI框架,OSI模型
七层模型 :
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
上层可以调用下层
TCP/IP协议族 多个协议
四层模型
应用层 (应用层+表示层+会话层)
传输层 TCP/UDP
互联网络层 IP
网络接口层 (物理层+数据链路层)
TCP/UDP Socket 编程接口 Socket 分为TCP编程和UDP编程两类
TCP 面向连接 传输数据安全 稳定 效率相对较低
UDP 面向无连接 传输数据不安全 效率较高
socket() socket.socket([family[,type[,proto]]])
family 套接字家族 可以使用AF_UNIX AF_INET
AF_UNIX 只能够用于单一的Unix系统进程之间的通信
AF_INET 服务器之间的网络通信
套接字家族按照面向连接还是无连接可以分为SOCK_STREAM和SOCK_DGRAM
SOCK_STERAM 流式socket TCP
SOCK_DGRAM 数据报式socket UDP
# 导入网络编程所需要的socket包
from socket import socket, AF_INET, SOCK_DGRAM
# 创建UDP套接字
udp_socket = socket(AF_INET, SOCK_DGRAM) # AF_INET 是服务器之间的通信 SOCK_DGRAM 是UDP
# 创建接受信息的地址 元祖 ip
address = ("192.168.0.102", 8080)
# 键盘接受发送的信息
data = input("please input your news")
# 调用sendto方法发送信息并设置编码格式
udp_socket.sendto(data.encode("gb2312"), address)
# 关闭套接字
udp_socket.close()