1
用户态内存
内核态内存
socket.recv() #用户态内存
send() #送往内核态内存
2
队列 先进先出
堆栈 先进后出
3
UDP:
ss = socket() #创建一个服务器的套接字
ss.bind() #绑定服务器套接字
inf_loop: #服务器无限循环
cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
ss.close() # 关闭服务器套接字
4
TCP有两个循环:接受链接的循环,通信循环
UDP只有通信循环
5
TCP 面向流
UDP 面向消息
6
recv
recvfrom
问题集锦:
1
解决占用问题:
#方法一
phone = socket(AF_INET,SOCK_STREAM)
phone.setsockopt(SOL_SOCKET,REUSEADDR,1)
phone.bind(('127.0.0.1',8080))
#方法二
#操作系统内核
2
解决粘包问题
尽量不要超过8k
MTU 1500bytes