Я сейчас работаю над Ubuntu и столкнулся со следующей проблемой. У меня есть аппаратное обеспечение, представляющее собой ПЛИС, и я хочу отправлять и получать от него данные. Проблема в том, что когда я хочу принять соединение, оно не отвечает. Я подключил свое аппаратное обеспечение к своему P C через кабель rnet через кабель USB-to-Ethe rnet. Когда я включаю свой P C, HW-соединение работает, и я могу отправлять и получать данные от него, но соединение inte rnet не работает, потому что мой P C распознает мое HW как сетевое соединение. Когда я отключаю свое HW, мой P C устанавливает мое обычное соединение ethe rnet, и я могу подключиться к inte rnet, но после того, как я снова хочу подключиться к моему HW, часть accept()
не отвечает. Вот мой код
class TCPServer:
def __init__(self):
self._cmd_port = 5002
self._data_port = 5001
self._host = '192.168.1.11'
_clean_ports(self._cmd_port, self._data_port)
self._cmd_socket = self._set_socket_opt(self._cmd_port)
self._data_socket = self._set_socket_opt(self._data_port)
print(f'waiting for HW connection...')
self._client_command, _ = self._cmd_socket.accept()
self._client_data, _ = self._data_socket.accept()
print(f'HW connected...')
def _set_socket_opt(self, port):
__sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
__sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
__sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
__address = (self._host, port)
__sock.bind(__address)
__sock.listen(1)
return __sock
. Как я уже сказал, пока я не отключился от него, я смогу подключиться к inte rnet, он работает нормально. После того, как я отключился и снова подключился, я запускаю свою программу, и она печатает «Ожидание подключения HW ...» , а self._cmd_socket.accept()
не отвечает. Я не знаю, почему возникает эта проблема. Я пробовал это тысячи раз за месяц до этого, и это сработало отлично. Возможно, произошло какое-то обновление Ubuntu, или я не знаю. Я попытался включить порты с помощью ufw
(https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04) и почти всего. Совершенно не понимаю, почему это было нормально до 1 месяца go и почему сейчас не работает
Пс. отлично работает на Windows ОС.