草庐IT

java - 移动提供商无法进行 UDP 打洞

实际上,我正在编写一个Android应用程序,该应用程序接收连接到电脑的网络摄像头的图片。为了获得更多的fps,我使用udp协议(protocol)而不是tcp。这个想法是,pc将图片发送到手机的ip和端口。但是电话供应商有不同的公共(public)端口。所以我不能直接打电话。这就是为什么我试图通过udpholepunching来解决这个问题,但是那没有用。当我的手机向电脑发送一个数据包时,电脑会获取手机的公共(public)IP和端口。每秒都会发生这种情况以保持连接打开。然后服务器尽可能快地将网络摄像头帧发送到这个ip和端口。但手机在1-2秒内仅收到10-15张图片。在那之后,提供商

java - 强制android立即发送UDP数据包?

我正在尝试通过WiFi将我的GalaxyAce连接到我的笔记本电脑。两个设备都通过WiFi连接到路由器,并且双方都使用Java。在TCP连接不时给我非常高的ping后,我决定基于UDP连接,以便能够控制数据包实际发送的时间。但是,Android似乎仍在缓冲UDP数据包并且不会立即发送它们。如果在几分之一秒内没有传出数据传输,这或者它会完全关闭WiFi。首先,我以大约每秒一次的不规则间隔ping电话,重复发送ping请求,只要没有收到答复(包括UDP中的数据包丢失):computer->phone->computerPinging192.168.1.40:148.05968msPingi

java - 从移动设备到 PC 的 UDP 多播

我正在制作一个Android应用程序,用于将UDP多播数据包从手机发送到我的PC。这是我的移动应用程序的代码:这是AndroidManifest.xml中的用户权限DeviceManagerWindow.javaimportandroid.net.wifi.WifiManager;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Context;importandroid.view.Menu;publicclassDeviceManagerWindowextendsActivity{@Ove

android - Android 的巨大 UDP 延迟/滞后

我正在开发一个Android应用程序,它通过WLAN向Windows端点发送/接收大量UDP流量(不,我不能使用TCP)。问题是,当我增加流量时,我开始看到调用sendto(应用程序是用NDK编写的)和我看到数据包到达Windows端点之间的巨大延迟。在10秒附近!同样的事情也反过来发生:我看到Windows端点发送的数据包与recvfrom()接收的数据包之间存在巨大的延迟。更改SO_SNDBUF没有任何效果,因此我认为这不是应用程序级缓冲控制的问题。我已确认该问题存在于各种Android设备上,因此我认为这不是硬件/无线驱动程序的问题使用嗅探器并关联时间戳,我确认在调用sendto

java - 在某些Android设备上严重UDP数据包丢失

我已经搜索了interwebz,但没有结果。我们面临的问题是某些Android设备会遭受严重的数据包丢失。为了提供一些背景信息,该应用程序连接到特定的Wifi并查找在端口17216上广播的UDP数据包。这些数据包的大小为832字节(不包括包装的header),并且以每秒4的常规速率发送。我们仅在以下两种设备上遇到了问题:低端TurboxRubikII平板电脑和ASUSMemoPadHD7。我们测试过的其他设备(手机和平板电脑)均以规定的定期间隔收集数据包。接收数据包的功能是这样的:publicvoidrun(){while(isUDPServerRunning){try{socket.

安卓游戏UDP/TCP?

我看到之前有人问过这个问题,但问题的背景通常很模糊。我正在寻找构建一个Android多人实时游戏,其中存在需要在所有客户端之间共享的全局状态。因此,我倾向于认为UDP可能还不够。TCP提供可靠性,但具有固有的开销。但是,由于这是我第一次解决此类问题,因此我正在寻找其他人的经验反馈。因此,(通常)在Android智能手机上的多人实时游戏环境中,与TCP相关的开销是否足够可接受,以至于用户体验不会受到如此不利的影响?另外值得一提的是,TCP连接必须是持久连接。另外,UDP加上一些可靠的定制开发机制会是更好的方法吗?任何输入都会真正帮助我并且将不胜感激。非常感谢

java - 如何在android中使用UDP套接字?

我正在尝试在android中使用UDP套接字,在这里我从android模拟器发送我的字符串并通过我在PC上的Java程序接收它,但是我的Java程序没有收到任何东西,尽管当我使用Java程序作为两个客户端时和服务器(我制作了两个不同的Java程序)它工作正常。这是我的安卓主要Activity:publicclassFirstextendsActivity{Buttonb;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.lay

android - 适用于 Android 的 UDP 或 RTP 流媒体解决方案

我需要创建一个Android应用程序来显示直播电视节目。该应用程序应该播放来自DVB网关多播的实时视频流,根据网关供应商的说法,它可以流出UDP或RTP。我在我的电脑上设置了vlc以流出UDP和RTP,并打破了我的手指试图让android播放器显示它们。过了一会儿我发现android只支持HTTP/S和RTSP直播流。我尝试了所有FFMPEG解决方案和不同的媒体播放器,但都没有成功。我不是视频专家,但据我了解,RTSP是RTP的封装,我的RTP提要可以打包和流式传输(甚至通过代理)吗?有谁知道有效的UDP解决方案吗?谢谢我开始编写一个隧道,将本地UDP流从端口1234传递到端口8888

Windows 中 UDP 的 C++ 头文件?

我有一个通过UDP协议(protocol)发送数据的linux应用程序。它使用这些头文件:#include/*standardCi/ofacilities*/#include/*neededforatoi()*/#include/*definesSTDIN_FILENO,systemcalls,etc*/#include/*systemdatatypedefinitions*/#include/*socketspecificdefinitions*/#include/*INETconstantsandstuff*/#include/*IPaddressconversionstuff*/

c++ - 用于 LAN 计算机发现和服务器设置的 UDP 广播

我正在开发一个小型网络游戏原型(prototype),它将使用UDP在LAN上玩。为了发现网络上的其他计算机,我一直在调查广播。但是,我仍然不确定有关UDP套接字设置/使用的一些细节(网络新手)。游戏开始后我找到了一个很好的库来使用,但是首先,必须发现所有运行游戏的计算机并且必须选择一个作为服务器。所以我的问题如下:能否使用单个UDP套接字来监听和发送广播?我很确定答案是肯定的,但我想验证一下。当使用UDP时,你真的必须使用bind()吗?据我了解,connect()不是必需的,send()/recv()也不是必需的,因为它们用于TCP(sendto()/recvfrom()是替代品)