Python TCP/UDO网络编程

阅读: 评论:0

Python TCP/UDO网络编程

Python TCP/UDO网络编程

  1. TCP
    服务器
import socket# 1.创建socket对象 s
# 2.绑定本机IP地址,创建端口号 s.bind()
# 3.监听端口号 a.listen()
# 4.等待接收客户端请求,获取客户端IP地址和创建新的socket对象 conn, address = s.accept()
# 5.接收客户端发送的信息 data = v(1024) 接收的是字节序列要转码str decode()
# 6.发送信息给客户端 conn,de()) 发送的str要转字节序列
# 7.关闭socket对象 s.close()  conn.close()"""接收客户端信息"""with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.bind(('', 8885))  # 链接地址ipv4 通讯类型TCPs.listen()print('服务器启动,循环监听中')while True:conn, address = s.accept()print('有客户端-> {0} 请求链接'.format(address))data = v(1024)print('收到客户端信息-> {0}'.format(data.decode()))conn.send('服务器已经收到你的信息'.encode())conn.close()"""接收客户端上载文件"""with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:s.bind(('', 8881))s.listen(10)print('服务器启动')while True:  # 循环监听with s.accept()[0] as conn:buffer = []while True:   # 反复接收数据data = v(1024)if data:buffer.append(data)else:breakb = bytes().join(buffer)       # 缓冲区连接完整字节序列with open(file='tcp.jpg', mode='wb') as f:f.write(b)print('数据上载完成')

客户端

import socket# 1.创建socket对象
# 2.链接服务器地址、端口号 s.connect
# 3.发送信息给数据库。要转字节序列发送
# 4.接收服务器信息。要转解码转字符串
# 5.关闭socket"""发送信息到服务器"""s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 8885))
s.send('请求进入系统'.encode())
data = s.recv(1024)
print('收到服务器信息-> {0}'.format(data.decode()))
s.close()"""上传文件到服务器"""with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as t(('127.0.0.1', 8881))with open(file='fj.jpg', mode='rb') as f:b = f.read()s.sendall(b)print('数据上载完成')
  1. UDP
  2. HTTP 网址请求
quest
import urllib.parse"""url网址请求"""
http = ''
quest.urlopen(http) as response:data = ad()html = data.decode()print(html)try:with open(file='website.html', mode='w', encoding='utf-8') as f:aft = f.write(html)print('文件保存成功,写入{0}字节'.format(aft))except OSError as e:print(e)"""get请求"""
http = ''
params_dict = {'page': 3}
params_str = urllib.parse.urlencode(params_dict)
url = http + '?' + params_str
print(url)
req = quest.Request(url)
quest.urlopen(req) as response:data = ad()html = data.decode()print(html)try:with open(file='website.html', mode='w+', encoding='utf-8') as f:aft = f.write(html)print('写入{0}字节'.format(aft))except OSError as e:print(e)"""请求网址步骤"""
# 1. 定义网址变量 url
# 2. 定义传参变量 parma_dict
# 3. 转传参变量为url字符串 parma_str
# 4. 转url字符串为字节序列 param_byte
# 5. 创建Request对象
# 6. 打开请求网址
# 7. 读取数据,数据是字节序列
# 8. 转字节序列为字符串"""post请求"""
url = ''
params_dict = {'page': 2}
params_str = urllib.parse.urlencode(params_dict)
# post不需要拼接字符串,POST是字节序列形式发送
params_byte = de()
req = quest.Request(url, data=params_byte)
quest.urlopen(req) as response:data = ad()html = data.decode()try:with open(file='website.html', mode='w', encoding='utf-8') as f:aft = f.write(html)print('写入%s字节成功' % aft)except OSError as e:print('e')# 下载图片url = '.jpg'quest.urlopen(url) as response:data = ad()try:with open(file='fj.jpg', mode='wb') as f:f.write(data)except OSError as e:print(e)

本文发布于:2024-01-28 23:13:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170645480410985.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:网络编程   Python   TCP   UDO
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23