移植UDT到android

android_UDT通信 android UDT写一下的通信,包括JNI调用等 立即下载

在开发过程中,需要使用UDT协议,由于server端使用的是c++版本的udt库,而Android版本在使用udt java版本和c++版本通信时,发现一些问题,google后发现目前的java version can not talk with c++ version,所以只能通过将UDT移植到android上,然后通过JNI的方式进行调用,下面就列出移植过程,供大家参考。

1、下载UDT4 C++版本,下载android ndk,存放在路径/path/android-ndk-r8b,

       设置系统变量export PATH=$PATH:/path/android-ndk-r8b

2、创建udtforAndroid的jni版本,路径:/path/udt4adr/udtforAndroid/jni,编写Android.mk文件:

LOCAL_PATH := $(call my-dir)
LOCAL_CFLAGS := -DLINUX
LOCAL_CPPFLAGS := -DLINUX
LOCAL_C_INCLUDES := /usr/include/c++/4.5/
LOCAL_CPP_EXTENSION:=.cpp
include $(CLEAR_VARS)
LOCAL_MODULE    := udt
LOCAL_SRC_FILES := md5.cpp common.cpp window.cpp list.cpp buffer.cpp packet.cpp channel.cpp queue.cpp ccc.cpp cache.cpp core.cpp epoll.cpp api.cpp
include $(BUILD_SHARED_LIBRARY)

使用NDK-BUILD,生成libudt.so

3、创建udtClient的jni版本:路径:/path/udtClient/jni, 编写Android.mk文件:

LOCAL_PATH := $(call my-dir)
LOCAL_CPP_EXTENSION:=.cpp
include $(CLEAR_VARS)


PATH_TO_UDT_SOURCE:=./include/
PATH_TO_LIBUDT_SO:=/Users/jiangsai2006/Documents/21.99merry/udtClient/jni
LOCAL_C_INCLUDES += $(PATH_TO_UDT_SOURCE)
LOCAL_LDLIBS += -L$(PATH_TO_LIBUDT_SO) -ludt
LOCAL_MODULE    := connect
LOCAL_SRC_FILES := connect.cpp
include $(BUILD_SHARED_LIBRARY)

使用生成libconnect.so


4、将这两个动态库加入到工程里:libs/armeabi/目录下

5、在程序里load动态库,并定义native接口,如下:

       

static {

System.loadLibrary("udt");

System.loadLibrary("connect");

}

public nativeint connect2Server();


6、如果在c++代码中使用了stl,可以定义Application.mk文件,然后加入如下内容:

APP_STL := stlport_static



udt无聊通信java实现修正 udt的java实现修改,对网上的源码进行修正,并且安卓TCP操作方式进行封装,同时封装了文件发送,给出了示例。进行了充分测试。如果网络环境特别差建议不要使用,没有重连机制,需要自己重连。 立即下载

相关推荐

基于UDP可靠传输协议UDT,封装好的sdk,用法同tcp的api

自己封装的udt源码,对外接口就是tcp的api。经过修改,改sdk,直接可用于嵌入式开发,最好应用于服务器高速传输,视频传输等等。 同时这里有网络打洞的示例,对于tcp不好应用的场景,用这个传输很6. 实测10M带宽,迅雷全速1MB/S左右,同时传输图像,无雪花卡顿,延迟10s左右,这个是我14年研究了封装的,所有UDT部分的源码停留在14年。 里面还有很多网络传输封装的各种工具类代码

在Android中使用UDT

原文链接:http://big-room.org/?p=152 UDT分析及Android平台移植 by BIGROOM posted on 六月 14, 2011 基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)是一种互联网数据传输协议,UDT的主要目的是支持高速广域网上的海量数据传输。 因为互联网上标准的数据传输协议TCP...

goblin_god的博客 736

UDT 主要流程(个人梳理)

UDT 主要流程(个人梳理),仅供参考, 其中挥手机制为个人为了解决最后一个包丢失可能导致的传输失败的解决方案

android udt协议,接口和软件包  |  Android 开源项目  |  Android Open Source Project

HIDL 围绕接口构建而成,而接口是在面向对象的语言中用来定义行为的抽象类型。每个接口都是软件包的一部分。软件包软件包名称可以具有子级,如 package.subpackage。已发布的 HIDL 软件包的根目录为 hardware/interfaces 或 vendor/vendorName(例如,对于 Pixel 设备,根目录为 vendor/google)。软件包名称在根目录下形成一个或多个...

weixin_30670053的博客 339

Pyrosim进阶指南:从隧道火灾模拟到复杂通风策略分析

本文深入探讨Pyrosim在隧道火灾模拟与通风策略分析中的高级应用。从精确几何建模到火源参数设置,再到通风系统的量化分析,详细介绍了如何利用Pyrosim优化隧道安全设计。特别强调了临界风速验证、横向通风配置及结果可视化技巧,为工程师提供实用的进阶指南。

weixin_30644369的博客 138

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8011

UDT分析及Android平台移植

基于UDP的数据传输协议(UDP-based Data Transfer Protocol,简称UDT)是一种互联网数据传输协议,UDT的主要目的是支持高速广域网上的海量数据传输。 由于UDT完全采用标准C++开发,具有很好的可移植性,不依赖于具体的操作系统,又由于Android采用的是Linux内核,所以理论上UDT完全可以移植到Android架构上。 移植前,首先要获得UDT的适合Linu

chenxupro的专栏 3053

华为P812E光猫补全shell配置PON口模式

终于看到华为企业级的带2.5电口P812E横空出世了,相信很多发烧友也已经将此收入昂中。相信体验的同时,遇到的第一件事情就是配置PON口模式的问题,本文将带发烧基友解锁模式。

GUAIYU的博客 5731

java jni udt找不到so_移植UDT到Android平台

UDT是UDP Based Data Transfer的缩写,这是一个基于UDP协议的在应用层实现的一种面向连接的传输协议,主要目的是在于支持高速广域网上的数据海量传输。其采用C++开发,具有高度的可移植性,并且开源,你可以在这里下载到UDT的源码https://sourceforge.net/projects/udt/在开发者提供的代码中,包含了UDT的核心代码和应用例程,并提供了Visual ...

weixin_36319219的博客 292

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

Python进行.tif格式数据波段组合;多波段tif数据波段分离

Python进行.tif格式数据波段组合;多波段tif数据波段分离.tif格式数据波段组合多波段.tif数据波段分离 阔别已久,我又来了;啊啊啊…… 读了研究生,忙到天昏地暗(哈哈哈,这都是借口,主要是花了一定时间适应研究生生活) 这方面的内容我也主要是应用在遥感领域,我们知道在遥感应用中,大多数的图像数据格式为.tif格式的。进行波段组合使用ArcGIS里面的Composite Bands工具是可以实现的,波段分离也可以使用一些工具或巧妙的方法分开。但当你使用Python程序的话,就可以简化这个软件点击和

qq_44353170的博客 1万+

移植udt到android

首先要装好并配置好NDK,下载UDT源码。下面从创建jni目录开始 1 创建jni目录,可以是任意的xxxxxx/jni2 把udt源码移动或拷贝到jni目录下 ../udt-test/jni/UDT43 创建Android.mk 在udt的src目录下添加Android.mk文件,其内容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_...

weixin_34026276的博客 195

HBase在物流行业的应用:轨迹数据存储

想象一下,每天在全球范围内,数以亿计的物流包裹在各个城市、乡镇间穿梭。每一个包裹从发货人手中出发,经过仓储中心、转运站,最终到达收货人手中,这一路上都留下了它的“足迹”,也就是我们所说的轨迹数据。这些数据就像一个个拼图碎片,完整拼接起来后,能够清晰地呈现出整个物流网络的运行状况。例如,你在网上购买了一件心仪已久的商品,迫不及待地想知道它现在到哪儿了。物流平台实时更新的轨迹信息,让你可以准确了解包裹是在运输途中,还是已经到达附近的站点。

架构师的AI之路,分享AI应用开发架构的学习与实践。 965

解决NDK出现error: exception handling disabled, use -fexceptions to enable的问题

原帖地址:http://blog.sina.com.cn/s/blog_643e838601015zbo.html 问题来源: UDT的android平台移植过程中,在用NDK编译buffer.cpp文件时出现error: exception handling disabled, use -fexceptions toenable。 问题解决: ...

weixin_30794491的博客 119

使用Open3D进行RGB-D图像点云处理

在本文中,我们将使用Open3D来处理RGB-D图像,提取点云并进行一些基本的操作。总结起来,本文介绍了如何使用Open3D库处理RGB-D图像并提取点云。我们展示了如何读取RGB-D图像,创建RGB-D图像和点云,并显示点云。除了显示点云,Open3D还提供了许多其他功能,如点云滤波、点云配准、表面重建等。在创建RGB-D图像时,我们需要指定深度图像的缩放因子和截断值,以及是否将RGB图像转换为强度图像。希望本文能够帮助您入门Open3D,并在处理RGB-D图像和点云数据时提供一些指导。

QfcaLinux的博客 445

QT+Opencv实现视频流播放

1.流程 首先通过opencv打开视频流,获取到数据帧,然后将数据帧转换为QT可识别的图像,显示到QT界面上。 2.opencv解码线程源码 //DecodeOpencv.h #pragma once #include <QThread> #include <QObject> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/img..

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 6459

如何从零手写反向传播:nn-zero-to-hero 神经网络课程完整指南

nn-zero-to-hero 把"神经网络怎么训练"这件事拆成了 7 个可执行的 notebook:你先手搓一个标量自动求导引擎,再一路写字符级语言模型,直到绕开 loss.backward() 自己推导梯度。它和照 PyTorch 文档调 API 的区别在于,每一步推导都能在你的机器上跑起来、被你逐行修改,而不只是读几行公式。课程目录在 [README.md](https://link.git

gitblog_00268的博客 917

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NDK-jni error for android

最近在搞NDK的东西,频繁出错,遂记录之。 1.NDK Note: The Mangling of 'Va_list' Has Changed in GCC 4.4 解决办法,修改 Android.mk,加一行: LOCAL_CFLAGS = -Wno-psabi 2.  error: exception handling disabled, use -fexce

oGuangXu的专栏 1444

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

error: exception handling disabled, use -fexceptions to enable。

问题来源:UDT的android平台移植过程中,在用NDK编译buffer.cpp文件时出现error: exception handling disabled, use -fexceptions to enable。问题解决:   此问题的出现是编译器的异常异常捕获被禁用了,需要在Android.mk文件中开启。在Android.mk文件中添加:LOCAL_CPPFLAGS += -fexcep

Potter:I am not for learning and learning, but for study and work 2429

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

error: exception handling disabled, use -fexceptions to enable

解决NDK出现error: exception handling disabled, use -fexceptions to enable的问题 问题来源:  UDT的android平台移植过程中,在用NDK编译buffer.cpp文件时出现error: exception handling disabled, use -fexceptions to enable。

garybook的专栏 5886
上一篇: 定制自己的控件
下一篇: 通过命令行创建Android工程,并编译发布
jiang_lostcode
博客等级 码龄18年 45粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值