1.一个机器上最多只能开设65535个port(端口)
2.实现通信IP+port实现通信
3.socket 对上层协议的封装: 可以实现tcp\ip udp通信
4.协议类型就叫 地址簇
socket.AF_UNIX unix本机进程间通信
socket.AF_INET IPV4
socket.AF_INET6 IPV6
5.socket 类型
socket.SOCK_STREAM TCP
socket.SOCK_DGRAM UDP
socket.SOCK_RAW 原始套接字,普通套接字无法处理ICMP、IGMP等网络报文,而这个可以。 可以伪造ip地址(可以用来实现‘’洪水攻击’‘)socket.SOCK_RDM 是一种可靠UDP形势,保证交付数据但是不保证顺序(发过去的是abc,接收到的可能是cba)。
socket.SOCK_SEQPACKET 废弃了
6.简单的收发数据通信
6.1 服务器
```
#!/usr/bin/env python
# -*- conding:utf-8 -*-
#Author: Henry
# 导入模块
import socket
server = socket.socket()
server.bind(('localhost', 6969)) # 绑定要监听的端口
server.listen() # 监听
print('我要等电话了')
con,addr = server.accept() # 等待连接
print(con,addr)
print('电话来了')
data = con.recv(1024) #接收数据
print('recv',data)
server.close()
```
6.2 客户端
'''client'''
import socket
client = socket.socket() # 声明socket类型,同时生成连接
client.connect(('localhost',6969)) # 设置连接的IP和端口
client.send(b'hello word ') # 要发送的数据
data = client.recv(1024) # 接收服务器回复的数据
print('revc:',data) # 打印数据
client.close() # 关闭客户端
```