记录一下海思udp 和上位机连接

海思代码

上位机获取系统时间,通过udp发送
和sample/vio同级别,makefile没有修改

#ifdef __cplusplus
#if __cplusplus
extern "C" {#endif
#endif /* End of #ifdef __cplusplus */#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include "sys/time.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "sample_comm.h"#define UDP_TEST_PORT       1864#define UDP_SERVER_IP       "192.168.0.51"struct timeval  t2;
int time_us;
/*********************************************************************** 功能描述:向给定ip和端口号发送udp字符串* 输入参数:    char *ip:ip地址*          int port:端口号*           char* str:发送的字符串* 输出参数:无* 返 回 值:  int:发送结果* 其它说明:无***********************************************************************/
int send_udp_str(char *ip, int port, char* str,int len) {int ret = 0;if (str == NULL) {ret = -1;return ret;}struct sockaddr_in server;int sockfd = 0;// int server_len = sizeof(struct sockaddr_in);int server_len = sizeof(struct sockaddr_in);/* setup a socket,attention: must be SOCK_DGRAM */if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket");ret = -1;return ret;}/*complete the struct: sockaddr_in*/bzero(&server, sizeof(server));server.sin_family = AF_INET;server.sin_port = htons(port);server.sin_addr.s_addr = inet_addr(ip);/* send the string to server*/if (sendto(sockfd, str, len, 0, (struct sockaddr *) &server,server_len) < 0) {printf("sendto error\n");ret = -2;}close(sockfd);return ret;
}
int main(int argc, char* argv[])
{int ret = 0;char *ipAddr = UDP_SERVER_IP;int port = UDP_TEST_PORT;int err;// ----------------新建socket,发送UDP包到服务端线程----------------struct sockaddr_in server;bzero(&server, sizeof(server));server.sin_family = AF_INET;server.sin_port = htons(port);server.sin_addr.s_addr = inet_addr(ipAddr);int sockfd = 0;/* setup a socket,attention: must be SOCK_DGRAM */if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {perror("socket");err = -1;return err;}// int count = 1;ipAddr = "192.168.0.51";port = 1864;char tmpStr[4096];int count1 = 1;while(count1 <= 10){gettimeofday(&t2, NULL);time_us = (t2.tv_sec) * 1000000 + t2.tv_usec;ret = send_udp_str(ipAddr, port, (char *)&time_us,4);printf("count = %d; num = %d;ret = %d\n", count1, time_us,ret);//发送数据sleep(1);count1++;}SAMPLE_PRT("udp exit success!\n");return 0;
}#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */

PC python 代码

上位机拆包,接收到数据逐个转换成Int,并且判断 如果接收到的全都是字母则退出程序

#!/usr/bin/python
from socket import *   #socket模块
import numpy as np
HOST = '192.168.0.51'
PORT = 1864
s= socket(AF_INET,SOCK_DGRAM)   #定义socket类型,网络通信,UDP
#s.bind((HOST,PORT))   #套接字绑定的IP与端口
ADDR = (HOST,PORT)
s.bind(ADDR)
while 1:data,addr=s.recvfrom(1024)   #接受TCP连接,并返回新的套接字与IP地址# print ('Connected by',addr)    #输出客户端的IP地址print(np.frombuffer(data, dtype=np.uint8))if bytes.isalpha(data) :break
s.close()     #关闭连接

HI3559 udp传输数据相关推荐

  1. TCP三次握手、tcp和udp对比、四表五链

    (1)简述TCP的三次握手 第一次握手:客户端请求建立连接时,会将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器,客户端进入SYN_SENT状态,等待服务器确认. 第二次握手: ...

  2. python网络编程—UDP协议

    一.UDP协议特点: UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送.UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之 ...

  3. 第五章 运输层(UDP和TCP三次握手,四次挥手分析)

    序言   通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅 ...

  4. Python教程之udp和tcp协议介绍

    UDP介绍 UDP - 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据 ...

  5. python udp编程_在Python下进行UDP网络编程的教程

    TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议. 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包.但是,能不 ...

  6. python udp编程_Python UDP编程

    1. UDP UDP,用户数据报传输协议,它位于TCP/IP协议的传输层,是一种无连接的协议,它发送的报文不能确定是否完整地到达了另外一端 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据. ...

  7. Python学习笔记(四十六)网络编程(2)— UDP编程

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320049779 ...

  8. UDP(发短信:简单模拟)

    发短信:不用连接,需要知道对方地址 文章目录 UDP发送消息 实现互相聊天 UDP多线程实现聊天 UDP发送消息 UDP传输 我们要用UDP传输数据时,怎么用Socket建立连接呢? Datagram ...

  9. python交互式编程客户端_【python】UDP网络编程:实现服务端与客户端的交互、简单的AI智能模式...

    关于UDP网络编程 UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层.UDP是面向非连接的协议,它不与对方建立连接,而是直接把要发的数据发给对方. [UDP网络 ...

最新文章

  1. php运行显示中文乱码,如何解决PHP界面显示中文乱码的问题
  2. 宿主如何访问虚拟机中的web服务器
  3. Spring Cloud搭建微服务架构----使用Zipkin做服务链路追踪
  4. 世界最成功的僵尸网络使用Fast Flux技术躲避检测
  5. python的socket编程
  6. 对C语言的程序基本结构框架,C语言的基本框架的.doc
  7. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 10课
  8. mac如何使用「磁盘工具」创建dmg 映像文件
  9. JS函数之间的调用(函数内调用一个函数、调用函数内部的函数)
  10. 头脑风暴 软件_头脑风暴和思维导图的最佳网站和软件
  11. 【Android工具】更新QMD音乐下载软件,MP3音乐下载器
  12. celery异步发送邮箱
  13. Mac 下修改eclipse内存设置
  14. html onclick点击事件失效,HTML onfocus,onclick事件不起作用
  15. 2022哈尔滨工程大学软件工程上岸经验贴
  16. 闲的没事,自己动手修改上兴3.2源代码
  17. 数据科学包_Eighth_Chapter
  18. LeetCode311 稀疏矩阵的乘法
  19. CSPJ2021考完了,你,AK了吗?
  20. 创业需谨慎:减少摩擦,打造快乐体验

热门文章

  1. Mac系统Jython安装与使用
  2. IDA pro逆向工具寻找socket server的IP和port
  3. 最新传智播客P2P金融项目网络借贷平台开发
  4. ARCGIS10.3版本的安装入门教程(ARCGIS安装遇到的问题及解决方案)
  5. PJSIP Android版编译
  6. 如何用JavaScript一次性抓取网站图片、种子等资源(正则表达式的应用)
  7. Windows安装MySQL报错:由于找不到msvcr120.dll无法继续执行代码
  8. 【Java基础系列教程】第二章 Java语言概述、配置环境变量
  9. 优思学院|2020年10月美质协六西格玛黑带ASQ CSSBB考试经历……
  10. 0040.大家来找茬(二).VIP课程