gpt4 book ai didi

Python:通过套接字接收数据 - [Errno 11] 资源暂时不可用

转载 作者:行者123 更新时间:2023-11-28 16:42:27 24 4
gpt4 key购买 nike

背景

我需要通过 python 与 Tektronix MSO 4104 通信。使用 vxi11 以太网协议(protocol)和 python 的套接字库在 LAN 上进行通信。

情况

现在这个工作得很好;我可以连接到范围,我可以向它发送我想要的任何命令(例如:<socket object>.send('*IDN?'))。但是,每当命令应该发送响应时(就像 *IDN? 应该做的那样)我尝试使用 <socket object>.recv(1024)但我总是收到错误消息“[Errno 11] 资源暂时不可用。”

我知道连接很好,因为我可以接收到同一个“*IDN?”的信息通过内置的 HTTP 接口(interface)进行提示。

代码

以下是 scope.py 中的一个片段,它使用范围创建套接字接口(interface)。

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

系统

  • 软呢帽 16
  • python 2.7
  • 泰克MSO4104

问题

那么,为什么我没有收到任何响应提示的数据?我是不是忘了做一些准备工作?数据是否在我不检查的地方?我只是用错了模块吗?任何帮助将不胜感激!

最佳答案

这适用于我使用相同的范围。

设置 setblocking(True) 并将\n 添加到 *IDN?命令。

import socket
import sys
import time

class Tek_scope(object):

def __init__(self, IPaddress, PortNumber = 4000):
self.s = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
self.s.connect((IPaddress, PortNumber))
self.s.setblocking(True)
print "Scope opened Successfully"

scope1 = Tek_scope("10.1.10.15") # Connects to the scope

scope1.s.send('*IDN?\n') # Sends the *IDN? command to the scope.

print scope1.s.recv(1024)

关于Python:通过套接字接收数据 - [Errno 11] 资源暂时不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com