[活动] 【正点原子阿尔法 IMX6ULL Linux开发板】第11篇 TCP编程测试(Python编程)

常见泽1   2023-6-24 22:47 楼主

 

TCP的PYTHON编程,我主要参考了两本书,分别是《python核心编程》和《python网络编程》两本书

 

TCP基本概念(网络)

 

TCP有专门的传递保证机制,收到数据时会自动发送确认消息,发送方收到确认消息后才会继续发送消息,否则继续等待。

这样的好处是传输的数据是可靠的,此外它是有连接的传输。

TCP协议是TCP/IP协议族中另外一个重要的协议,作为传输层上的协议,它更靠近应用程序,所以具有更强的可操作性。  

Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如 TCP/UDP 灯网络协议进行网络通讯的手段

 

TCP测试图下图所示(图片来源于网络)

image-20230624224448-1.png  

先了解下基本的

image-20230624224449-2.png  

image-20230624224449-3.png  

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

 

开始操作,首先

 

SSH登录开发板,root登录免密

 

1创建文件夹

image-20230624224449-4.png  

 

2复制py文件到test文件夹

image-20230624224449-5.png  

Py文件程序

 

查看下基本代码

SERVER_IP = "192.168.0.107"  # 服务器机的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())

 

 

3主机打开网络助手

image-20230624224449-6.png  

 

4运行py文件

sudo python3 computer_mx.py

 

5.查看测试结果

注意这里的IP填写的是本机主机的IP

端口号与开发板的端口号保持一致

 

image-20230624224449-7.png  

6 主机运行 Py文件

 

image-20230624224449-8.png

 

运行结果测试:

 

image-20230624224449-9.png  

回复评论 (6)

楼主,使用python来建立tcp server的优势是个啥啊?

点赞  2023-6-25 10:54
引用: jobszheng5 发表于 2023-6-25 10:54 楼主,使用python来建立tcp server的优势是个啥啊?

我也不太清楚

感觉Pyton跨平台方便一些

点赞  2023-6-25 11:14

我曾经对比过 使用socket接口搭建server,单链接数。——感觉代码量也挺少的。

使用C语言,借助开源的封装库,如libuv,建立服务器的代码量也非常少。

使用C++,代码量也挺少的

关键,上述三个方法都挺好用的。

点赞  2023-6-25 14:39

这东西是不是有驱动包啊  

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2023-6-26 10:29
引用: jobszheng5 发表于 2023-6-25 14:39 我曾经对比过 使用socket接口搭建server,单链接数。——感觉代码量也挺少的。 使用C语言,借 ...

大佬 你研究的比较透

我请教过专门做网络的同学,python做网络效率是比较低的

点赞  2023-6-26 16:48
引用: 秦天qintian0303 发表于 2023-6-26 10:29 这东西是不是有驱动包啊  

是的

Python 提供了基本的 socket 模块

点赞  2023-6-26 16:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复