树莓派与PC端在局域网内运用python实现即时通讯


Posted in Python onJune 22, 2019

电脑和树莓派在同一局域网内,先在电脑和树莓派创建python运行环境,然后在树莓派中用python运行rpi.py;在电脑上运行computer.py;电脑上输入字符即可在树莓派上即时显示!

rpi.py

#coding:utf-8
#import necessary package
import socket
import time
import sys


HOST_IP = "192.168.31.151" #树莓派的IP地址
HOST_PORT = 8888
print("Starting socket: TCP...")
#1.create socket object:socket=socket.socket(family,type)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("TCP server listen @ %s:%d!" %(HOST_IP, HOST_PORT) )
host_addr = (HOST_IP, HOST_PORT)
#2.bind socket to addr:socket.bind(address)
socket_tcp.bind(host_addr)
#3.listen connection request:socket.listen(backlog)
socket_tcp.listen(1)
#4.waite for client:connection,address=socket.accept()
socket_con, (client_ip, client_port) = socket_tcp.accept()
print("Connection accepted from %s." %client_ip)
socket_con.send("Welcome to RPi TCP server!")

print("Receiving package...")

###主循环
while True:
 try:
  data=socket_con.recv(512)
  if len(data)>0:
   print("Received:%s"%data)
   socket_con.send(data)
   time.sleep(1)
   continue
 except Exception:
   socket_tcp.close()
   sys.exit(1)

computer.py

import socket
import time
import sys

SERVER_IP = "192.168.31.151" #树莓派的IP地址
SERVER_PORT = 8888

print("Starting socket: TCP...")
server_addr = (SERVER_IP, SERVER_PORT)
socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

while True:
 try:
  print("Connecting to server @ %s:%d..." %(SERVER_IP, SERVER_PORT))
  socket_tcp.connect(server_addr)
  break
 except Exception:
  print("Can't connect to server,try it latter!")
  time.sleep(1)
  continue
print("Please input:")
while True:
 try:
  data = socket_tcp.recv(512)
  if len(data)>0:
   print("Received: %s" % data)
   command=raw_input()
   socket_tcp.send(command)
   time.sleep(1)
   continue
 except Exception:
  socket_tcp.close()
  socket_tcp=None
  sys.exit(1)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写的一个文本编辑器
Jan 23 Python
Python实现统计英文单词个数及字符串分割代码
May 28 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
老生常谈python中的重载
Nov 11 Python
对Python中一维向量和一维向量转置相乘的方法详解
Aug 26 Python
Python实现点云投影到平面显示
Jan 18 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
树莓派采用socket方式文件传输(python)
Jun 22 #Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 #Python
树莓派使用USB摄像头和motion实现监控
Jun 22 #Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 #Python
python+openCV利用摄像头实现人员活动检测
Jun 22 #Python
树莓派实现移动拍照
Jun 22 #Python
树莓派+摄像头实现对移动物体的检测
Jun 22 #Python
You might like
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
详解Python中的strftime()方法的使用
2015/05/22 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Python发送邮件实现基础解析
2020/08/14 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
个人实用的自我评价范文
2013/11/23 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
药店主任岗位责任制
2014/02/10 职场文书
公休请假条
2014/04/11 职场文书
面试自我介绍演讲稿
2014/04/29 职场文书
责任书格式范文
2014/07/28 职场文书
场地使用证明模板
2014/10/25 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
行为习惯主题班会
2015/08/14 职场文书
MySQL 数据表操作
2022/05/04 MySQL
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript