经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 树莓派 » 查看文章
树莓派与PC端在局域网内运用python实现即时通讯
来源:jb51  时间:2019/6/24 8:33:52  对本文有异议

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

rpi.py

  1. #coding:utf-8
  2. #import necessary package
  3. import socket
  4. import time
  5. import sys
  6.  
  7.  
  8. HOST_IP = "192.168.31.151" #树莓派的IP地址
  9. HOST_PORT = 8888
  10. print("Starting socket: TCP...")
  11. #1.create socket object:socket=socket.socket(family,type)
  12. socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  13. print("TCP server listen @ %s:%d!" %(HOST_IP, HOST_PORT) )
  14. host_addr = (HOST_IP, HOST_PORT)
  15. #2.bind socket to addr:socket.bind(address)
  16. socket_tcp.bind(host_addr)
  17. #3.listen connection request:socket.listen(backlog)
  18. socket_tcp.listen(1)
  19. #4.waite for client:connection,address=socket.accept()
  20. socket_con, (client_ip, client_port) = socket_tcp.accept()
  21. print("Connection accepted from %s." %client_ip)
  22. socket_con.send("Welcome to RPi TCP server!")
  23.  
  24. print("Receiving package...")
  25.  
  26. ###主循环
  27. while True:
  28. try:
  29. data=socket_con.recv(512)
  30. if len(data)>0:
  31. print("Received:%s"%data)
  32. socket_con.send(data)
  33. time.sleep(1)
  34. continue
  35. except Exception:
  36. socket_tcp.close()
  37. sys.exit(1)

computer.py

  1. import socket
  2. import time
  3. import sys
  4.  
  5. SERVER_IP = "192.168.31.151" #树莓派的IP地址
  6. SERVER_PORT = 8888
  7.  
  8. print("Starting socket: TCP...")
  9. server_addr = (SERVER_IP, SERVER_PORT)
  10. socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  11.  
  12. while True:
  13. try:
  14. print("Connecting to server @ %s:%d..." %(SERVER_IP, SERVER_PORT))
  15. socket_tcp.connect(server_addr)
  16. break
  17. except Exception:
  18. print("Can't connect to server,try it latter!")
  19. time.sleep(1)
  20. continue
  21. print("Please input:")
  22. while True:
  23. try:
  24. data = socket_tcp.recv(512)
  25. if len(data)>0:
  26. print("Received: %s" % data)
  27. command=raw_input()
  28. socket_tcp.send(command)
  29. time.sleep(1)
  30. continue
  31. except Exception:
  32. socket_tcp.close()
  33. socket_tcp=None
  34. sys.exit(1)

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号