Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Import socket Не пойму в чем ошибка

Alan Walker Знаток (275), на голосовании 16 часов назад
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().setting1()

Sock().setting2()

Строка conn, addr = self.sock.accept() выдаёт ошибку, не ужели сокет библиотеку через класс а именно вместе с self нельзя использовать
Голосование за лучший ответ
Даниил Лумумба Гуру (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 опыт в мою копилку
Огромное спасибо, выручил
Похожие вопросы