1610|2

7179

帖子

192

TA的资源

五彩晶圆(高级)

楼主
 

【BIGTREETECH CB1核心板&PI4B试用】第七篇 Python TCP通信 [复制链接]

 

 

准备搞一搞TCP网络通信

 

TCP的python学习参考python核心编程和python网络编程两本书

 

 

有了这两个基础,基本python的TCP简单应用也不在话下了

编写了一个bigtreetcp.py(SERVER) 一个computer.py

 

 

一新建py文件

 

 

新建一个bigtreetcp.py文件

 

二PC电脑创建一个coputertcp.py文件

使用pycharm

 

 

三运行py文件

 

 

PC机上运行

 

 

 

 

 

输入数据测试

 

 

 

 

 

通信成功

 

电脑端的代码

import socket
import time
import sys

SERVER_IP = "192.168.43.17"  # 树莓派的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 = input()
            socket_tcp.send(command.encode())
            time.sleep(1)
            continue
    except Exception:
        socket_tcp.close()
        socket_tcp = None
        sys.exit(1)

 

MCU端的代码

#coding:utf-8
#import necessary package
import socket
import time
import sys
 
 
HOST_IP = "192.168.43.17" #树莓派的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)
str='hello python tcp server'
str=str.encode()
socket_con.send(str)
 
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)

 

 

最新回复

楼主测评的挺快啊,也会python。   详情 回复 发表于 2023-1-10 21:16
点赞 关注
 
 

回复
举报

2959

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 

楼主测评的挺快啊,也会python。

点评

我在看你的GPIO,没你这么玩过  详情 回复 发表于 2023-1-10 21:43
 
 
 

回复

7179

帖子

192

TA的资源

五彩晶圆(高级)

板凳
 
tagetage 发表于 2023-1-10 21:16 楼主测评的挺快啊,也会python。

我在看你的GPIO,没你这么玩过

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表