AttributeError:'socket'对象没有属性'recive'

时间:2019-03-31 12:45:04

标签: python-3.x sockets

我一直在与树莓派合作开发一个项目。我正在尝试使用套接字在笔记本电脑和树莓派之间进行通信。

我正在尝试YouTube教程,并不断收到此错误

回溯(最近通话最近):   文件“”,第1行,位于     接收(1024) AttributeError:“ socket”对象没有属性“ recive”

无法运行脚本后,我尝试在python shell上逐行键入代码

导入套接字 socket.recv(1024)

但仍然出现相同的错误

谁能解释出什么问题了?

2 个答案:

答案 0 :(得分:0)

请先阅读api和示例? 正确的语法是buffer = socket.recv(1024)socket — Low-level networking interface

所述

但是似乎您还缺少其他基本流程,例如必须先创建连接的事实。

花一些时间先阅读正确使用套接字的示例,然后开始编码。 一个不错的开始是TutorialsPoint - Python 3 - Network Programming

答案 1 :(得分:0)

在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'))