python - Python unix 套接字不起作用?在这里找不到任何解释
问题描述
我正在运行通过 unix 套接字支持 IPC 控制的 mpv 播放器,它运行良好:
$ echo '{ "command": ["set_property", "pause", true ] }' | socat - /tmp/mpvsocket
{“request_id”:0,“错误”:“成功”}
现在我想从 python 脚本(Python 3.9)中得到同样的结果:
import os, sys
import socket
import errno
resp = ""
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect('/tmp/mpvsocket')
s.settimeout(2)
message = '{ "command": ["set_property", "pause", true] }'
s.send(message.encode())
try:
msg = s.recv(4096)
resp = msg.decode()
except OSError as e:
# Something else happened, handle error, exit, etc.
print("Error reciving reply from ipc sock:" + str(e.args[0]))
print(resp)
现在我得到了这个令人沮丧的事情:
从 ipc sock 接收回复时出错:超时
当然播放也没有暂停。
知道这里有什么问题吗?
解决方案
@Selcuk 的评论是正确的。只需添加“\n”。
推荐阅读
- php - 如何与 Laravel 中公用文件夹文件中的数据库进行交互?
- ios - XMPP 聊天问题
- django - 中间件 django 身份验证
- python - int 和 double 的正则表达式
- python - 连接列表中的字符串时遇到问题
- python - pandas 归一化值计数中特定元素的总和(KNN 分类)
- python - infer_datetime_format 与 parse_date 花费更多时间
- node.js - Typeorm Postgres 迁移未运行
- javascript - Google Cloud Function WHERE 查询过滤器不起作用
- javascript - 在 javascript 属性中维护指数数