socket应用
程序员文章站
2022-07-09 20:34:20
socket的使用 socket.socket(网络层ip协议蔟,传输层协议类型,默认协议) socket的通信过程 socket的应用 ......
socket的使用
socket.socket(网络层ip协议蔟,传输层协议类型,默认协议)
# server.py # 导入模块 import socket # 实例化服务器,使用ipv4协议,tcp协议 s = socket.socket(socket.af_inet,socket.sock_stream) # 绑定端口号 0.0.0.0监听所有ip地址 s.bind(('0.0.0.0',12345)) # 监听端口,设置连接数 s.listen(5) # 阻塞挂起,等待客户端连接 connsocket,addr = s.accept() # 连接成功后,接收客户端发来的数据,设置一次接收的数据大小,1kb data = connsocket.recv(1024) # 返回数据 connsocket.send(data) # 断开连接 connsocket.close() # client.py # 导入模块 import socket # 实例化客户端 client = socket.socket(socket.af_inet,socket.sock_stream) # 连接服务器 client.connect(('127.0.0.1',8080)) # 接收服务器数据 client.recv(1024) # 断开连接 client.close()
socket的通信过程
socket的应用
# 模拟http客户端发送请求 # 导入socket模块和url解析模块 import socket from urlparse import urlparse # 定义发送请求get_url函数 def get_url(url): # 解析url url = urlparse(url) # 提取主机名 host = url.netloc # 提取路径 path = url.path # 如果路径没有,访问根路径 if path == "": path = "/" # 客户端实例化 client = socket.socket(socket.af_inet,socket.sock_stream) # 建立socket连接 client.connect((host,80)) # 构造http协议 protol = "get {} http/1.1\r\nhost:{}\r\nconnection:close\r\n\r\n".format(path,host) # 发送请求数据 client.send(protol) # 定义data接收服务器的返回结果 data = "" # 确保接收完数据 while true: d = client.recv(1024) # 如果有值继续拼接 if d: data += d else: break # 将返回协议提取出来 html_data = data.split('\r\n\r\n')[1] # 打印提取结果 print html_data # 断开tcp连接
上一篇: python设计模式之观察者模式
下一篇: 新建WebAPI项目时遇到的问题