树莓派与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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
python爬取网易云音乐评论
Nov 16 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
详解python statistics模块及函数用法
Oct 27 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
使用Djongo模块在Django中使用MongoDB数据库
Jun 20 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python实现多线程抓取知乎用户
2016/12/12 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
会计辞职信范文
2014/01/15 职场文书
决心书范文
2014/03/11 职场文书
校园文化标语
2014/06/18 职场文书
安全责任书怎么写
2014/07/28 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
在校证明模板
2015/06/17 职场文书
导游词书写之黄山
2019/08/06 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
详解jQuery的核心函数和事件处理
2022/02/18 jQuery