树莓派与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调用短信猫控件实现发短信功能实例
Jul 04 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
May 21 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
10款最好的Python开发编辑器
Jul 03 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python的pip有什么用
Jun 17 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python下使用Trackbar实现绘图板
Oct 27 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 Python
使用pytorch实现线性回归
Apr 11 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初学者头痛的十四个问题
2006/07/12 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
PHP整合PayPal支付
2015/06/11 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
Python urlopen()函数 示例分享
2014/06/12 Python
跟老齐学Python之重回函数
2014/10/10 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Python新手学习装饰器
2020/06/04 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
python实现双人五子棋(终端版)
2020/12/30 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
记者岗位职责
2014/01/06 职场文书
岗位竞聘书范文
2014/03/31 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
基于Redission的分布式锁实战
2022/08/14 Redis
TS 类型兼容教程示例详解
2022/09/23 Javascript