Python中如何实现端口通信的需求,有什么好的方法或脑洞建议?
1.先客户端安装一个东西(可以是一个软件,插件,或者直接在页面中),能够跟我服务器交互,并且能够接受我的服务器参数后,访问特定的网站(这个是重点,一点要能做 get 或 post 请求),最后把访问结果返回给我的服务器.
2.我目前做了一个 python 的 tcp 通信,并且用 pyinstaller 打包成 exe,但是给客户端使用的时候,出现两个问题,会被提示病毒,每次启动都要双击. 有什么什么好的方式能够解决.
3.有没有什么插件,或者在某个 web 中直接实现上述功能, 希望能够我一些参考,谢谢!
Python中如何实现端口通信的需求,有什么好的方法或脑洞建议?
websocket
用Python搞端口通信,最直接的就是socket库,这是标准库里的基础网络工具。给你个简单的TCP例子:
import socket
# 服务端
def start_server(host='127.0.0.1', port=65432):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((host, port))
s.listen()
print(f"服务端监听 {host}:{port}")
conn, addr = s.accept()
with conn:
print(f"连接来自 {addr}")
data = conn.recv(1024)
print(f"收到: {data.decode()}")
conn.sendall(b'Message received')
# 客户端
def start_client(host='127.0.0.1', port=65432):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
s.sendall(b'Hello from client')
data = s.recv(1024)
print(f"收到回复: {data.decode()}")
# 运行示例
if __name__ == "__main__":
from threading import Thread
import time
server_thread = Thread(target=start_server)
server_thread.daemon = True
server_thread.start()
time.sleep(0.5) # 等服务器启动
start_client()
socket是底层实现,需要自己处理连接、数据收发和错误。如果要做更复杂的应用,可以考虑这些:
asyncio+socket- 异步非阻塞,适合高并发连接socketserver模块 - 简化服务器创建,内置多线程/多进程支持- 第三方库:
websockets- WebSocket协议实现aiohttp- 异步HTTP客户端/服务器paramiko- SSH2协议实现pyserial- 串口通信
选哪种取决于你的具体需求:简单本地通信用socket,Web应用考虑WebSocket,需要高并发就上asyncio。
一句话:根据协议和并发需求选工具,socket是基础,高级场景用专门库。
webhook,你看看我的贴子有点类似,ifttt 触发服务发生指定数据到我的服务器,我服务器再把发送过来的数据发送到某一端,后面改下就可以,不知道你的具体需求
[更新] [1024 机器人大作战] [ bearychat_ifttt ] 双向 webhooks 服务,只有想不到没有做不到
https://www.v2ex.com/t/504155
用 websocket 的话,前端想请求地址的话,好像还要跨域操作
感谢,我现在参考一下
socket 通信,自己写协议,解析命令做对应操作
不是向两个服务器 post/get 的过程吗?还是我理解的有问题?为啥要用到 websocket 之类。。
一段 javascript 不就搞定了?顶多再解决一下跨域访问问题。
请问 js 能解决 在客户端时刻接受服务器发来的信息,解析得到目标 url,然后客户端访问 url 并把访问结果带回服务器么
恩恩,这个已经实现了,只是打包 exe 的时候会被认为是病毒


