AttributeError: у объекта 'socket' нет атрибута 'recive' - PullRequest
0 голосов
/ 31 марта 2019

Я работал над проектом с малиновым пи. Я пытаюсь установить связь между ноутбуком и Raspberry Pi с помощью сокетов.

Я пробовал учебник YouTube и продолжаю получать эту ошибку

Traceback (последний вызов был последним): Файл "", строка 1, в s.recive (1024) AttributeError: у объекта 'socket' нет атрибута 'recive'

после неудачного запуска скрипта я попытался набирать код построчно на оболочке python

гнездо для импорта socket.recv (1024)

но все равно появляется та же ошибка

Может кто-нибудь объяснить, в чем проблема?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Проблема решена с помощью tutorialspoint.com

Простой сервер

    #!/usr/bin/python3           # This is server.py file
    import socket                                         

    # create a socket object
    serversocket = socket.socket(
                socket.AF_INET, socket.SOCK_STREAM) 

    # get local machine name
    host = socket.gethostname()                           

    port = 9999                                           

    # bind to the port
    serversocket.bind((host, port))                                  

    # queue up to 5 requests
    serversocket.listen(5)                                           

    while True:
       # establish a connection
       clientsocket,addr = serversocket.accept()      

       print("Got a connection from %s" % str(addr))

       msg = 'Thank you for connecting'+ "\r\n"
       clientsocket.send(msg.encode('ascii'))
       clientsocket.close()

Простой клиент

# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

# get local machine name
host = socket.gethostname()                           

port = 9999

# connection to hostname on the port.
s.connect((host, port))                               

# Receive no more than 1024 bytes
msg = s.recv(1024)                                     

s.close()
print (msg.decode('ascii'))
0 голосов
/ 31 марта 2019

Не возражаете, сначала прочитав API и примеры?Правильный синтаксис: buffer = socket.recv(1024), как указано в сокете - Сетевой интерфейс низкого уровня

Но, похоже, вам не хватает другого базового потока, например, факта, что вам нужно создать соединениеfirst.

Потратьте некоторое время, сначала прочитав примеры правильного использования сокетов, а затем начните кодирование.Хорошим началом будет TutorialsPoint - Python 3 - Сетевое программирование

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...