树莓派与PC机的socket通信(1)

a 夏天 提交于 2020-03-10 18:57:58

1.服务端(即pc)

import socket
import time

HOST = '#.#.#.#' #连接本地服务器,可通过ipconfig/all看IPV4的地址
PORT = 8001 #设置端口号,自己设置即可
# socket.AF_INET用于服务器与服务器之间的网络通信
# socket.SOCK_STREAM代表基于TCP的流式socket通信
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT)) #绑定端口
sock.listen(5)  #监听这个端口,可连接最多5个设备
while True:
    connection,address = sock.accept() #接收客户端的连接请求
    try:
        connection.settimeout(10)  #设置10s时限
        buf = connection.recv(1024)#接收数据实例化
        if buf:  #接收成功
            connection.send(b'welcome to server!')  #发送消息,b表示bytes类型
            print('Connection success!')
        else:  #接收失败
            connection.send(b'Please go out!')
    except socket.timeout:  #超时
        print('time out!')
    connection.close()  #关闭连接

2.客户端(即树莓派端)

import socket
import time

HOST = '#.#.#.#'  #指服务端IP地址
PORT = 8001  #端口号
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST,PORT))  #注意,在客户端是连接connect,而在服务端是bind
time.sleep(2)
sock.send(b'1')  #发送信息
print(sock.recv(1024).decode()) #打印接收消息,并且译码
sock.close() #关闭连接

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!