电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

如何將服務(wù)器上的python代碼通過QQ發(fā)送回傳信息(附實(shí)現(xiàn)方法)

瀏覽:40日期:2022-07-25 18:02:34

本文介紹我使用QQ得到服務(wù)器上回傳的python代碼的探索歷程,面向的對(duì)象是對(duì)計(jì)算機(jī)網(wǎng)絡(luò)有一定了解的讀者。期待有興趣的人和我一起探討!

需求來源

最近,我在跑一些數(shù)據(jù)量巨大的代碼。代碼在本地一運(yùn)行,CPU就占滿了,代碼運(yùn)行時(shí)間又久,因此這段時(shí)間根本用不了電腦,這對(duì)疫情在家的大學(xué)生很難受。把代碼放服務(wù)器吧,又不知道什么時(shí)候能跑完,這讓我很不爽。于是,我希望服務(wù)器端的代碼能給我一個(gè)不錯(cuò)的反饋,由此我選擇了QQ交互方法。

硬件工具

本地電腦一臺(tái),服務(wù)器一臺(tái)(如果你只是想嘗試一下,而沒有服務(wù)器,可以使用 VMware 虛擬機(jī))

探索歷程

首先,我使用的無界面CentOS服務(wù)器上是沒有辦法運(yùn)行QQ的,因此想要實(shí)現(xiàn)交互,應(yīng)該先把服務(wù)器上的信息傳送到本地電腦,再由本地電腦發(fā)送給QQ,這樣我就可以收到消息了。

那么就將目標(biāo)分割為兩個(gè)任務(wù)了,分別為:

本地電腦給QQ發(fā)信息 服務(wù)器與本地電腦信息交互

接下來就給大家說明我是怎么實(shí)現(xiàn)這兩步的:

本地電腦給QQ發(fā)信息

主要原理:通過 win32 API, 將python信息賦給剪切板,粘貼到QQ聊天框中,最后模擬按 “Enter” 鍵,發(fā)送消息1。代碼如下:

import win32guiimport win32conimport win32clipboard as wclass SendMsg: ''' 這是一個(gè)用于將信息發(fā)送到QQ的類, 使用方法為 : SendMsg('收信人QQ昵稱', '信息').sendmsg() 注意一點(diǎn),收信人的QQ聊天窗口要在屏幕上,不能最小化或被掩蓋。 ''' def __init__(self, receiver, msg): self.receiver = receiver self.msg = msg self.set_text() # 設(shè)置剪貼版內(nèi)容 def set_text(self): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg) w.CloseClipboard() # 發(fā)送消息 def sendmsg(self): qq = win32gui.FindWindow(None, self.receiver) win32gui.SendMessage(qq, win32con.WM_PASTE, 0, 0) win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)if __name__ == ’__main__’: SendMsg('一花一世界', 'Hello, world').sendmsg()

效果如圖所示:

如何將服務(wù)器上的python代碼通過QQ發(fā)送回傳信息(附實(shí)現(xiàn)方法)

注意:

1、python 關(guān)于 win32 的包,下載方式為:

pip install pypiwin32

2、QQ有兩種發(fā)送消息的模式,一種是'Enter',一種是'Ctrl+Enter'。這里要選擇'Enter'模式。

服務(wù)器與本地電腦信息交互

我們已經(jīng)完成了本地電腦給QQ發(fā)信息的操作,現(xiàn)在只需要完成服務(wù)器與本地電腦信息的交互,就可以讓本地電腦根據(jù)服務(wù)器的指令發(fā)送QQ信息了。如何讓服務(wù)器和本地電腦通信呢?經(jīng)過一些思考,我選擇用Socket2。使用Socket的話,就要解決IP問題,因?yàn)楸镜仉娔X的IP不是公網(wǎng)IP,我們需要解決端口映射問題,將本地電腦的IP映射到公網(wǎng)!考慮到不一定有路由器,我使用了一款軟件路由俠,該軟件在免費(fèi)的狀態(tài)下,一個(gè)月可以有一個(gè)G的流量進(jìn)行端口映射,因?yàn)槲覀冎饕糜谛《挝淖謧鬏敚@點(diǎn)流量已經(jīng)足夠。該軟件也操作簡(jiǎn)單,我不過多介紹。本地電腦開放的端口為8080端口,經(jīng)過路由俠的端口映射后,端口變?yōu)閥ihuahuahua.e2.luyouxia.net:30985因?yàn)槲覀冎挥米鰡蜗蛲ㄐ牛苑?wù)器的IP不重要。我們首先測(cè)試一下Socket功能,讓服務(wù)器給本地電腦發(fā)一個(gè)'Hello world'代碼如下:

本地電腦端代碼

from socket import *HOST = ’’PORT = 8080BUFSIZ = 1024ADDR = (HOST, PORT)tcpSerSock = socket(AF_INET, SOCK_STREAM)tcpSerSock.bind(ADDR)tcpSerSock.listen(5)while True: print(’waiting for connection...’) tcpCliSock, addr = tcpSerSock.accept() print(’...connnecting from:’, addr) while True: data = tcpCliSock.recv(BUFSIZ) if not data: break print(data.decode(’utf-8’)) tcpCliSock.close()tcpSerSock.close()

服務(wù)器端代碼

from socket import *HOST = ’yihuahuahua.e2.luyouxia.net’PORT = 30985BUFSIZ = 1024ADDR = (HOST, PORT)tcpCliSock = socket(AF_INET, SOCK_STREAM)tcpCliSock.connect(ADDR)output_str = 'Hello world!'tcpCliSock.send(output_str.encode())tcpCliSock.close()

注意:在進(jìn)行Socket通信時(shí),要注意開放端口!!!

將功能綜合

這里規(guī)定一個(gè)任務(wù):計(jì)算1加1的值,并返回計(jì)算時(shí)間,將上述功能綜合后,代碼如下:本地電腦端代碼

from socket import *import win32guiimport win32conimport win32clipboard as wclass SendMsg: ''' 這是一個(gè)用于將信息發(fā)送到QQ的類, 使用方法為 : SendMsg('收信人QQ昵稱', '信息').sendmsg() 注意一點(diǎn),收信人的QQ聊天窗口要在屏幕上,不能最小化或被掩蓋。 ''' def __init__(self, receiver, msg): self.receiver = receiver self.msg = msg self.set_text() # 設(shè)置剪貼版內(nèi)容 def set_text(self): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg) w.CloseClipboard() # 發(fā)送消息 def sendmsg(self): qq = win32gui.FindWindow(None, self.receiver) win32gui.SendMessage(qq, win32con.WM_PASTE, 0, 0) win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)if __name__ == ’__main__’: HOST = ’’ PORT = 8080 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: tcpCliSock, addr = tcpSerSock.accept() while True: data = tcpCliSock.recv(BUFSIZ) if not data: break output_str = data.decode(’utf-8’) SendMsg('一花一世界', output_str).sendmsg() tcpCliSock.close() tcpSerSock.close()

服務(wù)器端代碼

from socket import *import timeHOST = ’yihuahuahua.e2.luyouxia.net’PORT = 30985BUFSIZ =1024ADDR = (HOST,PORT)tcpCliSock = socket(AF_INET,SOCK_STREAM)tcpCliSock.connect(ADDR)start = time.time()count = 1 + 1end = time.time()output_str = '結(jié)果為' + str(count) + ' 消耗時(shí)間' + str(int(end - start)) + '秒'tcpCliSock.send(output_str.encode())tcpCliSock.close()

運(yùn)行結(jié)果:

如何將服務(wù)器上的python代碼通過QQ發(fā)送回傳信息(附實(shí)現(xiàn)方法)

美滋滋。

改進(jìn)方向與探索

目前已知的缺陷有:Socket第一次通信有概率收不到消息,第二次就好了…希望有大佬在評(píng)論區(qū)指出我的不足。

這個(gè)版本只能實(shí)現(xiàn)單方面信息傳送,如果想實(shí)現(xiàn)雙向的,我思考的一個(gè)思路是通過 酷QAir的QQ機(jī)器人 加上 CQHTTP3 插件配合nonebot庫4來實(shí)現(xiàn)。不過我的需求已經(jīng)實(shí)現(xiàn)了,暫時(shí)懶得動(dòng)手了,有緣再探索吧。

https://www.cnblogs.com/hwj2019/p/11552055.html ↩︎

https://blog.csdn.net/su_bao/article/details/80380465 ↩︎

https://github.com/richardchien/coolq-http-api ↩︎

https://nonebot.cqp.moe/guide/getting-started.html ↩︎

總結(jié)

到此這篇關(guān)于我將服務(wù)器上的python代碼通過QQ發(fā)送回傳信息(附實(shí)現(xiàn)方法)的文章就介紹到這了,更多相關(guān)python qq發(fā)送回傳信息內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: qq Python
相關(guān)文章:
主站蜘蛛池模板: 压缩空气检测_气体_水质找上海京工-服务专业、价格合理 | 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 蒸汽吸附分析仪-进口水分活度仪|康宝百科 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 上海道勤塑化有限公司 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 手持气象站_便携式气象站_农业气象站_负氧离子监测站-山东万象环境 | 欧景装饰设计工程有限公司-无锡欧景装饰官网 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 |