UDP套接字慢度

2024-09-30 01:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在通过UDP多播收听股票快照数据。然而,套接字接收数据的速度似乎有限制

while 1:
    start1 = time.clock()
    SocketData = Msocket.recv(4096)
    end1 = time.clock()
    counter += 1

我创建了一个调度程序,它每1秒运行一次,并统计接收到的data的数量,范围为100-300,但不超过100。我有一个记录的feed,我可以每秒抛出数千次脉冲,但它不会相应地以低于峰值的速率响应

175
172
190

这个套接字有吞吐量限制吗?也没有显示数据包丢弃。我应该使用不同的配置吗

下面是正在使用的配置

def prepare(self):
    self.BroadCastSocket = socket.socket(socket.AF_INET,
                                socket.SOCK_DGRAM,
                                socket.IPPROTO_UDP)
    self.BroadCastGroup = socket.inet_aton(self.MCAST_ADDR)
    self.InterfaceIp = socket.inet_aton(self.MCAST_IP)
    self.MultiCastRequest = struct.pack('=4s4s',
                               self.BroadCastGroup,
                               self.InterfaceIp)
    self.BroadCastSocket.setsockopt(socket.IPPROTO_IP,
                           socket.IP_ADD_MEMBERSHIP,
                           self.MultiCastRequest)
    self.BroadCastSocket.setsockopt(socket.SOL_SOCKET,
                           socket.SO_REUSEADDR,
                           1)

def bind(self):
    self.BroadCastSocket.bind(('0.0.0.0', self.MCAST_PORT))

Tags: selfiptimedefsocketudpinetclock

热门问题