树莓派与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使用Redis实现作业调度系统(超简单)
Mar 22 Python
用Python设计一个经典小游戏
May 15 Python
浅谈python中的占位符
Nov 09 Python
Python变量赋值的秘密分享
Apr 03 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
Python简单基础小程序的实例代码
Apr 28 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
Python调用C语言程序方法解析
Jul 07 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
python 对xml解析的示例
Feb 27 Python
pytorch 使用半精度模型部署的操作
May 24 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 事件机制(2)
2011/03/23 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python中函数传参详解
2016/07/03 Python
python目录与文件名操作例子
2016/08/28 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
英语系本科生个人求职信
2013/09/21 职场文书
公司授权委托书
2014/10/17 职场文书
流动人口婚育证明
2014/10/19 职场文书
岳庙导游词
2015/02/04 职场文书
毕业生对母校寄语
2015/02/26 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电