Использование PyQt4 и Qt4.1, Python 3.7.2, последний PyInstaller
У меня есть два приложения (С++ и Python), которые обмениваются данными через udp localhost, порт 2340 и порт 2341). В обоих приложениях я ограничиваю порты с помощью
self.SocketIn.bind(QtNetwork.QHostAddress.LocalHost, 2340, QtNetwork.QUdpSocket.ReuseAddressHint)
self.SocketIn.readyRead.connect(lambda: print("Hallo")
и (на стороне С++)
SocketOut->bind(QHostAddress::LocalHost, 2340, QUdpSocket::ReuseAddressHint);
Оба приложения возвращают значение true, а состояния также равны «4», что означает, что они находятся в BoundState.
Теперь проблема: если я сначала запускаю приложение Python, оно работает. Приложение С++ получает сообщения на порт 2341 и отправляет сообщения на 2340. Приложение Python получает сообщения на порт 2340 и отправляет сообщения на порт 2341. Если я сначала запущу приложение С++, приложение Python не вызовет сигнал readyRead на порту 2340. больше. Как я уже сказал, все boundStates есть (приложение Python, приложение C++, -> порты 2340, 2341), и сообщения действительно отправляются из приложения C++ (видно в wireshark)
В чем тут подсказка?
РЕДАКТИРОВАТЬ: Теперь я понял, что наоборот, такое же поведение. Похоже, что принимающая сторона должна быть сначала инициализирована, чтобы работать!