2
背景的Python:通過套接字接收數據 - [錯誤11]資源暫時不可
我需要從蟒與泰克MSO 4104進行通信。通信使用vxi11以太網協議和python的套接字庫在局域網上進行。
形勢
現在這個工程相當不錯;我可以連接到範圍,我可以發送任何我想要的命令(例如:<socket object>.send('*IDN?')
)。然而,無論何時一個命令應該發送響應(如* IDN?應該這樣做),我嘗試使用<socket object>.recv(1024)
,但我總是收到錯誤「[Errno 11]資源暫時不可用」。
我知道連接是好的,因爲我可以接收信息到相同的'* IDN?'。通過內置的HTTP接口提示。
代碼
以下是從scope.py片段,其創建與範圍TEH套接字接口。
import socket
import sys
import time
class Tek_scope(object):
'''
Open up socket connection for a Tektronix scope given an IP address
'''
def __init__(self, IPaddress, PortNumber = 4000):
self.s = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
self.s.connect((IPaddress, PortNumber))
self.s.setblocking(False)
print "Scope opened Successfully"
我們得到錯誤,我運行以下命令:
import scope # Imports the above (and other utility functions)
scope1 = scope.Tek_scope("10.1.10.15") #Connects to the scope
scope1.s.send('*IDN?') #Sends the *IDN? command to the scope.
# I have verified these signals are always recieved as I can
# see them reading out on the display
scope1.s.recv(1024)
# This should receive the response... but it always gives the error
系統
- 的Fedora 16
- 的Python 2.7
- 泰克MSO4104
問題
那麼,爲什麼沒有我recieveing響應我提示任何數據?我忘了某種預習嗎?數據是否在某處我只是不檢查?我剛剛使用了錯誤的模塊嗎?任何幫助將不勝感激!
嘿,謝謝你的工作!不幸的是,對於我來說,我最終只是把所有東西都報廢,然後用C寫出來。但是感謝修復! – Bacaa14