У меня есть следующий класс UDP, отправляющий массивы данных с частотой около 100 Гц
from six import string_types
import socket
import struct
def convert_data(iterable):
if isinstance(iterable, string_types):
return str(iterable)
data = tuple(iterable)
format = "{0}H".format(len(data))
print("Sending data:", format, data)
if max(data) > 2**16 - 1:
raise ValueError(max(data))
if min(data) < 0:
raise ValueError(min(data))
return struct.pack(format, *data)
class UDP(object):
def __init__(self, ip, port):
self._ip = ip
self._port = port
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.connect((ip, port))
def send_data(self, data):
message = convert_data(data)
return self.socket.sendall(message)
После успешной отправки в течение примерно минуты возникает следующая ошибка:
Traceback (most recent call last):
File "take_analogue_data.py", line 13, in
File "take_analogue_data.py", line 8, in main
File "/home/pi/nio-integration/hardware/raspi/UDP.py", line 22, in __init__
File "/usr/lib/python2.7/socket.py", line 187, in __init__
socket.error: [Errno 24] Too many open files
Я искал решение. Этот ответ на переполнение стека предлагает увеличить количество возможных файлов. Хотя я действительно не думаю, что это то решение, которое я ищу.
Могу ли я что-нибудь сделать? Я думал, что закрытие соединения каждый раз может сработать, но я уже поигрался с кучей вещей. (Я пробовал send, sendall и sendto – ничего не помогло)
Примечание: я запуск Python2.6 на Raspbian Wheezy на Raspberry Pi
Изменить
Другой модуль отправляет данные. Это может выглядеть примерно так
import UDP
udp = UDP.UDP(IP, PORT)
while(True):
udp.send_data(range(8))
sleep(0.01)
Подробнее здесь: https://stackoverflow.com/questions/256 ... open-files
Python Socket выдает «[Errno 24] Слишком много открытых файлов» ⇐ Python
Программы на Python
-
Anonymous
1732033970
Anonymous
У меня есть следующий класс UDP, отправляющий массивы данных с частотой около 100 Гц
from six import string_types
import socket
import struct
def convert_data(iterable):
if isinstance(iterable, string_types):
return str(iterable)
data = tuple(iterable)
format = "{0}H".format(len(data))
print("Sending data:", format, data)
if max(data) > 2**16 - 1:
raise ValueError(max(data))
if min(data) < 0:
raise ValueError(min(data))
return struct.pack(format, *data)
class UDP(object):
def __init__(self, ip, port):
self._ip = ip
self._port = port
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.connect((ip, port))
def send_data(self, data):
message = convert_data(data)
return self.socket.sendall(message)
После [b]успешной отправки[/b] в течение примерно минуты возникает следующая ошибка:
Traceback (most recent call last):
File "take_analogue_data.py", line 13, in
File "take_analogue_data.py", line 8, in main
File "/home/pi/nio-integration/hardware/raspi/UDP.py", line 22, in __init__
File "/usr/lib/python2.7/socket.py", line 187, in __init__
socket.error: [Errno 24] Too many open files
Я искал решение. Этот ответ на переполнение стека предлагает увеличить количество возможных файлов. Хотя я действительно не думаю, что это то решение, которое я ищу.
Могу ли я что-нибудь сделать? Я думал, что закрытие соединения каждый раз может сработать, но я уже поигрался с кучей вещей. (Я пробовал send, sendall и sendto – ничего не помогло)
[b]Примечание: я запуск Python2.6 на Raspbian Wheezy на Raspberry Pi[/b]
[b]Изменить[/b]
Другой модуль отправляет данные. Это может выглядеть примерно так
import UDP
udp = UDP.UDP(IP, PORT)
while(True):
udp.send_data(range(8))
sleep(0.01)
Подробнее здесь: [url]https://stackoverflow.com/questions/25674750/python-socket-gives-errno-24-too-many-open-files[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия