聊天平台

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()

多人聊天,大家可以在一个服务器上相互聊天,相当于群聊。

群聊平台、发邮件、发短信相关推荐

  1. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  2. Zabbix监控整合OneAlert报警平台实现邮件、短信、微信、电话多方式报警

    Zabbix传统告警方法 Email:调用 sendmail .sendEmail 等脚本通过 SMTP 发送邮件 飞信:飞信已经退出历史舞台,不再有人使用 189/139:发送邮箱邮件至邮箱,邮箱将 ...

  3. Qt通讯录(语音输入+发邮件+发短信+头像)

    Qt通讯录(语音输入+发邮件+发短信+头像) 项目背景 功能 运行程序 关键技术 语音识别ASR 发送电子邮件 AddressBook5.0 Gitee地址 项目背景 作为一个Qt小白,迫于大一下学期 ...

  4. 公司让给客户发国庆祝福短信怎么快速完成

    一年一度的国庆长假来了,公司也即将迎来一个小长假,领导说要集中给我们的客户发国庆祝福短信,体现公司对客户的关怀问候还有祝福,几十万的客户群哦,好苦恼怎么操作,还好有一些平台可以专门做这个,提供短信接口 ...

  5. 安徽一个班37人考进清华北大,老师发来一则短信,家长沉默了

    安徽一个班37人考进清华北大,老师发来一则短信,家长沉默了 ! 2017-07-09 21:39 来源:养生健康保健 放假了,一个班主任给家长发了一则短信: 不管成绩怎样,没有什么优生差生的区别.家长 ...

  6. android短信发不了图片,手机发不出短信怎么办?-安卓手机发不出短信的解决方法 - 河东软件园...

    手机发不出短信怎么办?有时我们会遇到手机发不出短信的时候,这时有可能是手机没有话费了,也有可能是手机上的短信功能出现问题了,当我们的手机在没有欠费的状态下,依然发不出短信要怎么办呢?很多遇到这种情况的 ...

  7. 免费发匿名信匿名短信的教程

    使用「一封云来信」小程序观看广告,每天都可以免费发送一封匿名短信哦. 匿名短信免费发送教程: 微信搜索:「一封云来信」进入小程序,点击"我的"页面,观看3次视频广告. 每观看一次视 ...

  8. 手机发不出短信 htc hero g3

    在网上找了很多资料关于手机发不出去短信的,现在也总结一下,以免大家也遇到这样的问题一直解决不了,然后烦人.当然这个解决只是针对htc hero g3的同胞们而言哈.嘿嘿 1.在拨号界面输入:*#*#4 ...

  9. NOKIA 6681 现在发不了短信 如何从装系统?

    朋友的手机发不了短信,老提示内存不足,拿过来找我帮忙看看! 我拿过后删除了所以能删除的的东东,还是如此,只用在网上找找 按照第一个格式化方法,好了! 第一步:先检查你的中心号码是否正确.进入信息按键顺 ...

  10. android 短信 扣费,偷发扣费短信 手机12306现“山寨”货

    春运抢票高峰临近,随着12306手机客户端近期上线,一大批冒充订票软件的手机木马也出现在网络中.根据360手机卫士监测发现,此类木马多达数十款,存在消耗流量.偷发扣费短信等危害. 小李是一名在校大学生 ...

最新文章

  1. spring boot初学习的数据库依赖
  2. java设计模式---策略模式
  3. 设计模式 之 适配器模式
  4. swig封装 c语言函数到python库,python swig 调用C/C++接口
  5. java中属性外部化_用Java可外部化
  6. 从零开始编写深度学习库(四)Eigen::Tensor学习使用及代码重构
  7. 十三种技术文档模板_帮助企业制作帮助文档的6大“黑科技”工具!
  8. Nginx 原理和架构 | 原力计划
  9. 搭建Mock Server实践(一)理论篇
  10. 贺利坚老师汇编课程21笔记:用汇编语言写的源程序
  11. 应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件...
  12. 微信开放平台(公众号)API学习笔记(1)-公众号测试账户
  13. Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
  14. 第一篇文献:谈大数据时代的云控制摄影测量 ——张祖勋院士
  15. 日志打印、main函数中代码执行顺序
  16. zip压缩包解压中文乱码问题
  17. aria2+AriaNg 打造自己的离线下载/云播平台
  18. python爬虫api接口,网易云音乐python爬虫api接口
  19. 《看聊天记录都学不会C语言?太菜了吧》(6)编程很难吗?差一点就学不会了呢!
  20. 什么叫做走心的文案?怎么写走心的文案?

热门文章

  1. 数字孪生这10款超好用的软件,你用过几个?
  2. pacman常用命令汇总
  3. PDF怎样转换成JPG图片 PDF转换为JPG图片教程 1
  4. 计算机课作业要求做一张简报,小学五年级信息技术教学计划(干货4篇)
  5. 【转】形容词、形容动词、名词的假定形
  6. winserver修改计算机用户名,如何修改Windows系统的管理员账户名
  7. 2022.12.1 英语背诵
  8. python图片大小怎么算的_python图片大小处理;
  9. Network 之十 BIOS + MBR、UEFI + GPT、GRUB、BOOTMGR、SYSLINUX、Option ROM
  10. pytorch实战(四)——模型的保存与读取