Даниил Лумумба
Гуру
(2519)
1 месяц назад
Ошибка в том, что ты создаешь два разных объекта класса `sock` в строках `sock().setting1()` и `sock().setting2()`.
Каждый объект `sock` имеет свой собственный `self.sock`, который не связан с `self.sock` другого объекта.
Решение: Создай объект `sock` один раз, и вызывай методы `setting1` и `setting2` от этого объекта.
```python
import socket
class sock:
def __init__(self):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def setting1(self):
self.sock.bind(('localhost', 5656))
self.sock.listen(10)
def setting2(self):
while True:
conn, addr = self.sock.accept()
print(f'подключился: {addr}')
# Создаем объект sock
my_sock = sock()
# Вызываем методы
my_sock.setting1()
my_sock.setting2()
```
Alan WalkerЗнаток (275)
1 месяц назад
Друг, тебе огромное спасибо, только недавно начал классы изучать, не думал что это такая большая ошибка, +1 опыт в мою копилку
Огромное спасибо, выручил
class Sock:
def __init__(self):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def setting1(self):
self.sock.bind(('localhost', 5656))
self.sock.listen(10)
def setting2(self):
while True:
conn, addr = self.sock.accept()
print(f'Подключился: {addr}')
Sock().setting1()
Sock().setting2()
Строка conn, addr = self.sock.accept() выдаёт ошибку, не ужели сокет библиотеку через класс а именно вместе с self нельзя использовать