1.socket
socket运行于传输层和应用层之间,其主要协议有TCP和UDP,可以将tcp和udp协议封装好,只要符合socket,就肯定符合tcp和udp协议,无需深入的了解tcp和udp
2.socket的类型
目前主要使用的是AF_INET,基于网络类型的套接字
3.基于TCP协议的套接字流程
4.TCP协议的三次握手和四次挥手
5.基于TCP协议编写一个服务端和客户端
5.1 服务端
from socket import * ip_port=('127.0.0.1',8080) buffer_size=5 tcp_server=socket(AF_INET,SOCK_STREAM)#建立一个socket对象 tcp_server.bind(ip_port)#绑定ip和端口,确立唯一的地址 tcp_server.listen(buffer_size)#持续监听 conn,addr=tcp_server.accept()#conn为和客户端建立的链接,addr为客户端的地址 data=conn.recv(1024)#一次性最多从缓存区里拿1024字节的数据 print(data) conn.send(data.upper()) conn.close() tcp_server.close()
5.2客户端
from socket import * ip_port=('127.0.0.1',8080) buffer_size=5 tcp_client=socket(AF_INET,SOCK_STREAM)#建立一个socket对象 tcp_client.connect(ip_port)#连接服务端 a=input('please input something') tcp_client.send(a.encode('utf-8'))#个人理解,凡是自己手动输入的东西,都需要进行编码和解码,客服端和服务端必有一个 data=tcp_client.recv(1024) print(data) tcp_client.close()