使用Python进行UDP编程

  • 1 SFP光口
  • 2 解决方案一(有待验证,看是否成功)

实际遇到需要解决问题真是最好的老师,断更了两天,主要还是自己贪玩了,没有把握好时间,另外就是我一直在研究怎么入手通过SFP光口来控制高精度电源。

1 SFP光口

为什么使用SFP光口而不是直接以太网,主要是SFP光口可以达到10GHz的刷新频率,而网口只能支持1Hz的刷新频率。这就是最大的实际应用场景区别要求。因为我最终的目的是需要另一台FPGA通过SFP连接电源上的SFP光口。故需要探究看看怎么通过SFP控制。
首先根据说明手册,发现就只是告诉如下信息:

  • 告诉了连接方式,如何连接:星型连接,直接连接等。
  • UDP的帧的各个含义
  • 1000M Base-T 1000Base-X 千兆网线
    千兆口一般有电口即RJ45和光口即SFP。

发现仔细阅读了一遍说明书,还是一头雾水,还是没有告诉你该怎么控制,一点头绪没有。一定还是不要害羞尽管找技术支持,因为我的是意大利电源,所以主要是通过发邮件,幸好遇到的技术支持人非常的及时,基本第二天就给我回复消息了,当然你也绝不能指望他能给你有更大的帮助,只是最起码能验证自己心里的猜想,我又问他要了一个demo,他给我发了一段python代码。

2 解决方案一(有待验证,看是否成功)

我原本以为是要在另一台FPGA上写UDP呢,这可就难了,而且还需要别人的帮助,这就不是自己能掌控的事情了,最主要的事情就是python代码就根本用不上了。这有点不符合技术支持的意思。
想办法怎么使用PC和电源的SFP口连接上—》就想到了交换机
找到了 千兆光口和千兆网口的交换机 解决PC和电源上SFP光口的连接问题。

  1. 买交换机

这个是TP-LINK的产品,看了一下还不贵,不到200块钱,明天可以找导师去买一下,即使失败了 以后也能用上。

2.学习python来UDP编程

在网上找了UDP编程的例子,就是自己利用一个本地回环127.0.0.1进行测试喜爱,发现是可以的,同时对于每个语句的功能看懂。
分别分为服务端 和客户端两个程序,并且分别运行。
需要知道以下概念基本知识点:
IP:它是用来标识处于Internet之中的端系统的。
MAC:它是用于在同一局域网中标识不同的计算机的。
端口号:它是用来标识同一台主机上不同的网路应用程序的。
套接字:应用程序进行通信的一种抽象机制。每一个进程都有一个或者多个套接字。当生成一个套接字的时候,就会为它分配一个端口号。我们是在C/S架构上应用UDP套接字编程。那么,服务器总是在等待客户端的请求。客户端在请求的时候,它会告知目的地址(服务器的IP地址和目的进程的端口号)。

  • 服务端程序
#python3实现循环无连接服务器
#包含socket库
from socket import *;
#服务器端口
server_port = 8000;
#创建套接字,设置Ipv4地址以及指定UDP连接
server_socket = socket(AF_INET,SOCK_DGRAM);
#绑定IP地址和端口号。监听该端口
server_socket.bind(('',server_port));
while True:print("receive data:");#从客户端发来的包中获取数据存放在data中,将源地址放在client_address中。#设置缓存大小为4096。完成这些功能需要使用函数recvfrom.data,client_address = server_socket.recvfrom(4096);print(data.decode()); #打印客户端的数server_socket.sendto(("success!").encode(),client_address);  # encode()进行编码
server_socket.close();
  • 客户端程序
#python3实现循环无连接服务器
#包含socket库
#python3实现的客户端代码
#包含网络模块
from socket import *;
#服务器地址以及端口号
#127.0.0.1是本地回环地址,经常用来进行测试,也可以使用域名localhost来代替该ip地址
server_address = '127.0.0.1';
server_port = 8000;
#创建套接字  ipv4地址以及UDP协议
client_socket = socket(AF_INET,SOCK_DGRAM);while True:
data = input("please input:");
client_socket.sendto(data.encode(),(server_address,server_port));        # 第一个参数是 内容,第二个参数是要发给的IP地址和端口
recv,server_addr = client_socket.recvfrom(4096);
print(recv.decode());
client_socket.close();```

中间报错就是 数据类型不对,byte和str的数据类型 转换的问题。通过使用以下函数来解决:
python bytes和str两种类型可以通过函数encode()和decode()相互转换,
str→bytes:encode()方法。str通过encode()方法可以转换为bytes。
bytes→str:decode()方法。如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法。

目前这是自己想到的解决方案一,若是不行的话,看看是继续坚持遇到问题就继续找原因,还是大方向就错了,应该是写FPGA来。

Python进行UDP编程相关推荐

  1. Python之UDP编程

    参考:https://www.cnblogs.com/greatfish/p/7368433.html UDP --- 用户数据报协议(User Datagram Protocol),是一个无连接的简 ...

  2. python的基础网络编程是下列_Python入门基础之网络编程、socket编程、TCP、UDP编程...

    忙了两天,继续更文!希望多多支持. 套接字 套接字是一种具有之前所说的"通讯端点"概念的计算机网络数据结构.网络化的应用程序在开始任何通讯之前都必需要创建套接字. 套接字有三种: ...

  3. Python之网络编程(TCP套接字与UDP套接字)

    文章目录 基于tcp的套接字 实现目标 tcp服务端源码 tcp客户端源码 tcp效果实现 基于udp的套接字 udp作用介绍 udp服务端源码 udp客户端源码 udp效果实现 用udp实现一个时间 ...

  4. python udp编程_详解python UDP 编程

    前面我们讲了 TCP 编程,我们知道 TCP 可以建立可靠连接,并且通信双方都可以以流的形式发送数据.本文我们再来介绍另一个常用的协议–UDP.相对TCP,UDP则是面向无连接的协议. UDP 协议 ...

  5. 跟李宁老师学Python视频课程(15):Python TCP与UDP编程-李宁-专题视频课程

    跟李宁老师学Python视频课程(15):Python TCP与UDP编程-122人已学习 课程介绍         本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点.Pytho ...

  6. 【018】Python全栈日记-UDP编程

    从今天开始进行网络的学习,主要以socket编程为主,今天先了解一下网络的基础知识和UDP编程.本次日记很有意思哦,最后模拟了微信聊天. 以下计算机基础知识来源于网络(https://www.cnbl ...

  7. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  8. Python基础-socket编程

    一.网络编程 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计算机的 ...

  9. PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)

    上一节(<4.1 SNIFFER(嗅探器)之数据捕获(上)>)中, 我们讲解了通过Raw Socket的方式来编写Sniffer的基本方法. 本节我们继续来编写Sniffer,只不过使用现 ...

  10. Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

最新文章

  1. mac下常用快捷键整理
  2. 马斯克公布火星太空船最新照片:施工已达最后一步,10月有望正式推出
  3. iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文
  4. springboot, thymeleaf 教你快速搭建网站
  5. 有什么办法可以判断页面是静态还是动态?_你知道seo到底是什么吗?该怎么优化?...
  6. Kubernetes 学习总结(19)—— Kubernetes 集群管理平台如何选择?Rancher vs KubeSphere
  7. linux内核中获取虚拟地址api,Linux内核-系统调用
  8. 移动端适配的基础知识
  9. GaMD-高斯加速分子动力学模拟中文教程
  10. Web初学-2022.10.22-27
  11. linux环境下,集群中Hadoop版本更换
  12. python因子分析案例_Python因子分析简介
  13. 使用piranha搭建高可用LVS集群
  14. python 简单字体解密
  15. 现行各主流语言的特点
  16. 一元二次方程abc决定什么_专题—二次函数一元二次方程-abc意义.pptx
  17. Github Markdown 指定图片在光亮或暗黑模式展示
  18. 洛谷入门篇的相关题解
  19. 重新学习JSP之五——投票系统
  20. SwiftUI - Shape(Circle, Rectangle,RoundedRectangle,Capsule,Path)

热门文章

  1. 魅族 android 文件传输,魅族文件管理app提取下载
  2. 三极管饱和及深度饱和状态的理解和判断
  3. 手术导航系统原理简介、主要工作及应用
  4. 有没有可以帮忙lua解密一下的大概是这样一个压缩包
  5. 图数据库Neo4j下载、安装
  6. 微信小程序开发调用接口
  7. JavaScript视频系统教程
  8. windows 下载 gcc
  9. 十天入门php,十天学会PHP之第十天
  10. 热门软件看点:绿坝花季护航蹿红解读(2009-06-14 10:21:45)