簡體   English   中英

Python:Unix套接字->管道破損

[英]Python: unix socket -> broken pipe

我正在嘗試讓Python套接字作為調用命令行socat的替代方法。

這個socat命令可以正常工作:

echo 'cmd' | sudo socat stdio <path-to-socket>

但是當我運行此python代碼時,出現錯誤:

>>> import socket
>>> s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
>>> s.connect(<path-to-socket>)
>>> s.send('cmd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.error: (32, 'Broken pipe')

任何想法是什么問題? 謝謝。

echo | socat之間有一個明顯的區別echo | socat echo | socat行和您的Python代碼,這就是echo添加的換行符,但您沒有發送Python代碼。 我看不到這怎么會導致管道破裂錯誤。 您的基本方法看起來不錯,當我在本地測試時也可以正常工作。 您確定服務器進程在這里沒有做額外的事情嗎? 您確定它仍在監聽,例如由於某種原因沒有關閉插槽的另一端?

我遇到了這個問題,最終導致我的代碼在腳本中運行良好-但是在交互工作時管道破裂。 我想可能是超時或其他原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM