群聊平台、发邮件、发短信
聊天平台 :
from socket import socket
from threading import Threaddef main():class ClientHandler(Thread): # 创建多线程def __init__(self, client):super().__init__()self._client = clientdef run(self):while True:try:data = self._client.recv(1024) # 设置缓存区 接收内容for client in clients: # 遍历client.send(data) # 转发消息给所有人if data.decode('utf-8') == 'byebye': # 解码 说拜拜的时候clients.remove(self._client) # 从服务器移除客户self._client.close() # 断开连接breakexcept Exception as e: #如果出现程序错误print(e) #打印报错信息clients.remove(self._client) # 程序出错就移除用户 收不到消息breakserver = socket() # 套接字创建server.bind(('10.7.189.53', 22222)) # 绑端口 2的16次方减1 (可以用命令行参数 -sys.argv可以把Ip写灵活的)server.listen(512) # 开启监听clients = [] # 记录连上用户的while True:curr_client, addr = server.accept() # 元组 = 接收用户信息clients.append(curr_client) # 记录连上用户ClientHandler(curr_client).start()if __name__ == '__main__':main()
运行上面代码后,什么都不会显示,静静等待各各客户端的连接…..
from socket import socket
from threading import Threaddef main():class RefreshScrenThread(Thread):def __init__(self, client):super().__init__()self._client = clientdef run(self): #刷屏 消息刷新while running:data = self._client.recv(1024)print(data.decode('utf-8'))nickname = input('请输入你的昵称:')myclient = socket()myclient.connect(('10.7.189.116',1234))running = TrueRefreshScrenThread(myclient).start()while running:content = input('请发言:') # 设置发言if content == 'byebye': # 说bye 就断开myclient.send(content.encode('utf-8')) # 保存到服务器running = Falseeag = nickname + ':' + content #区分谁发言 发言带冒号名字myclient.send(eag.encode('utf-8')) # 保存到服务器if __name__ == '__main__':main()
请输入你的昵称:苹果 # 输入用户名 可以开始实现消息互发
实现图片的传输:
首先是传输方:
from socket import socket, SOCK_DGRAM
from time import sleepdef main():sender = socket(type=SOCK_DGRAM) # 设置UDP 类型传输文件with open('mm.jpg', 'rb') as f:data = f.read()data_len = len(data) ## 文件字节长度 f.seek f.tell 也可以算长度total = 0while total < data_len:sender.sendto(data[total:total + 1024], ('10.7.189.53', 22222)) # 内容 , 地址# sendto 是发送 因为数据太大 所以切片来接衔接收数据total += 1024sleep(0.001)if __name__ == '__main__':main()
接收方,收到数据形成图片,并重命名为hello.jpg文件保存
from socket import socket, SOCK_DGRAMdef main():receiver = socket(type=SOCK_DGRAM)receiver.bind(('10.7.189.53', 22222))data = bytes() # 拼 装while True:seg, addr = receiver.recvfrom(1024) # recvfrom是阻塞是方法 接收数据data += seg # 新拿到的数据追加进去 接收文件远大于1024 就要拼接if len(data) >= 69611:breakwith open('hello.jpg', 'wb') as f:f.write(data)print('图片已接收。')if __name__ == '__main__':main()
发送邮件给QQ邮箱:
import smtplib
from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextdef main():sender = smtplib.SMTP_SSL('smtp.qq.com',465) # 创建sender.login('11111111@qq.com','osqyoywlpbbcdf') # 登录 osqyoywlpbcdf 是邮箱MAP/SMTP服务 KEY密message = MIMEMultipart()text_msg = MIMEText('附件中有本月要做的历年账目表','plain','utf-8')message.attach(text_msg)att2 = MIMEText(open('历年账目表.docx','rb').read(),'base64','utf-8')att2['Content-Type'] = 'applocation/octet-strem'att2['Content-Diposition'] = 'attachment;filename = foo.xlsx'message.attach(att2)sender.sendmail('11111111@qq.com',['62222222@qq.com'],message.as_string())#62222222@qq.com 是接收邮箱者print('发送完成!')if __name__ == '__main__':main()
发送短信的:
‘account’: ”,
‘password’: ”,
这两个参数需要找接口,这里用的是huyiwuxian
import urllib.parse
import http.client
import jsonhost = "106.ihuyi.com"
sms_send_uri = "/webservice/sms.php?method=Submit"params = urllib.parse.urlencode({'account': '','password': '','content': '您的验证码是:147258。请不要把验证码泄露给其他人。','mobile': '18281599458','format': 'json'
})
print(params)
headers = {'Content-type': 'application/x-www-form-urlencoded', 'Accept': 'text/plain'}
conn = http.client.HTTPConnection(host, port=80, timeout=10)
conn.request('POST', sms_send_uri, params, headers)
response = conn.getresponse()
response_str = response.read()
jsonstr = response_str.decode('utf-8')
print(json.loads(jsonstr))
conn.close()
多人聊天,大家可以在一个服务器上相互聊天,相当于群聊。
群聊平台、发邮件、发短信相关推荐
- Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信
Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...
- Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警
Zabbix传统告警方法 Email:调用 sendmail .sendEmail 等脚本通过 SMTP 发送邮件 飞信:飞信已经退出历史舞台,不再有人使用 189/139:发送邮箱邮件至邮箱,邮箱将 ...
- Qt通讯录(语音输入+发邮件+发短信+头像)
Qt通讯录(语音输入+发邮件+发短信+头像) 项目背景 功能 运行程序 关键技术 语音识别ASR 发送电子邮件 AddressBook5.0 Gitee地址 项目背景 作为一个Qt小白,迫于大一下学期 ...
- 公司让给客户发国庆祝福短信怎么快速完成
一年一度的国庆长假来了,公司也即将迎来一个小长假,领导说要集中给我们的客户发国庆祝福短信,体现公司对客户的关怀问候还有祝福,几十万的客户群哦,好苦恼怎么操作,还好有一些平台可以专门做这个,提供短信接口 ...
- 安徽一个班37人考进清华北大,老师发来一则短信,家长沉默了
安徽一个班37人考进清华北大,老师发来一则短信,家长沉默了 ! 2017-07-09 21:39 来源:养生健康保健 放假了,一个班主任给家长发了一则短信: 不管成绩怎样,没有什么优生差生的区别.家长 ...
- android短信发不了图片,手机发不出短信怎么办?-安卓手机发不出短信的解决方法 - 河东软件园...
手机发不出短信怎么办?有时我们会遇到手机发不出短信的时候,这时有可能是手机没有话费了,也有可能是手机上的短信功能出现问题了,当我们的手机在没有欠费的状态下,依然发不出短信要怎么办呢?很多遇到这种情况的 ...
- 免费发匿名信匿名短信的教程
使用「一封云来信」小程序观看广告,每天都可以免费发送一封匿名短信哦. 匿名短信免费发送教程: 微信搜索:「一封云来信」进入小程序,点击"我的"页面,观看3次视频广告. 每观看一次视 ...
- 手机发不出短信 htc hero g3
在网上找了很多资料关于手机发不出去短信的,现在也总结一下,以免大家也遇到这样的问题一直解决不了,然后烦人.当然这个解决只是针对htc hero g3的同胞们而言哈.嘿嘿 1.在拨号界面输入:*#*#4 ...
- NOKIA 6681 现在发不了短信 如何从装系统?
朋友的手机发不了短信,老提示内存不足,拿过来找我帮忙看看! 我拿过后删除了所以能删除的的东东,还是如此,只用在网上找找 按照第一个格式化方法,好了! 第一步:先检查你的中心号码是否正确.进入信息按键顺 ...
- android 短信 扣费,偷发扣费短信 手机12306现“山寨”货
春运抢票高峰临近,随着12306手机客户端近期上线,一大批冒充订票软件的手机木马也出现在网络中.根据360手机卫士监测发现,此类木马多达数十款,存在消耗流量.偷发扣费短信等危害. 小李是一名在校大学生 ...
最新文章
- spring boot初学习的数据库依赖
- java设计模式---策略模式
- 设计模式 之 适配器模式
- swig封装 c语言函数到python库,python swig 调用C/C++接口
- java中属性外部化_用Java可外部化
- 从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构
- 十三种技术文档模板_帮助企业制作帮助文档的6大“黑科技”工具!
- Nginx 原理和架构 | 原力计划
- 搭建Mock Server实践(一)理论篇
- 贺利坚老师汇编课程21笔记:用汇编语言写的源程序
- 应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件...
- 微信开放平台(公众号)API学习笔记(1)-公众号测试账户
- Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
- 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
- 日志打印、main函数中代码执行顺序
- zip压缩包解压中文乱码问题
- aria2+AriaNg 打造自己的离线下载/云播平台
- python爬虫api接口,网易云音乐python爬虫api接口
- 《看聊天记录都学不会C语言?太菜了吧》(6)编程很难吗?差一点就学不会了呢!
- 什么叫做走心的文案?怎么写走心的文案?
热门文章
- 数字孪生这10款超好用的软件,你用过几个?
- pacman常用命令汇总
- PDF怎样转换成JPG图片 PDF转换为JPG图片教程 1
- 计算机课作业要求做一张简报,小学五年级信息技术教学计划(干货4篇)
- 【转】形容词、形容动词、名词的假定形
- winserver修改计算机用户名,如何修改Windows系统的管理员账户名
- 2022.12.1 英语背诵
- python图片大小怎么算的_python图片大小处理;
- Network 之十 BIOS + MBR、UEFI + GPT、GRUB、BOOTMGR、SYSLINUX、Option ROM
- pytorch实战(四)——模型的保存与读取