有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓为每个客户端编写具有多个UDP连接的Java服务器

首先,我将介绍这种情况:我创建了一个应用程序,它在两个Android设备之间发送视频和音频(客户端和服务器之间的直接连接)。现在我想更进一步,使用运行在计算机中的专用Java服务器;该服务器必须在这些客户端和服务器应用程序之间架起通信桥梁。例如,首先两个安卓应用程序都将连接到计算机服务器,然后,从第一台设备获得的所有视频数据将发送到服务器,然后发送到第二台设备

快速答案可能是:在服务器内部,为每个现有socket创建两个socket,然后使用它们桥接数据。 问题是,我有5个UDPsocket:客户端的音频Tx和Rx、视频Tx和Rx以及命令Tx,服务器端的音频Tx和Rx、视频Tx和Rx以及命令Rx,我还有一个TCPsocket来管理通信

因此,目前我唯一的选择是:

客户端应用----------计算机服务器----------服务器应用

音频发送------------------->;音频接收|音频发送------------------->;音频接收

音频接收<;------------------------------音频发送|音频接收<;---------------------------音频发送

视频发送------------------->;视频接收|视频发送------------------->;视频接收

视频接收<;---------------------------视频发送|视频接收<;---------------------------视频发送

订单发送--------------------gt;订单接收|订单发送--------------------;订单接收

TCP<-----------------------------------&燃气轮机;TCP | TCP<-----------------------------&燃气轮机;TCP

这绝对是一个需要管理/编码/维护的地狱

第二种选择是使用NIO,但不建议在发送大量数据时使用它

这是最好的方法吗?如果没有,有没有办法减少服务器中UDPsocket的数量,因为它们只能在两个设备之间桥接数据

谢谢你的时间


共 (1) 个答案

  1. # 1 楼答案

    但是,您的计算机服务器需要那么多不同的R/T套接字吗?转播音频与视频或订单不同吗?服务器除了转发传入的数据包没有别的事情可做。所以在我看来,你只需要编程一个RTM模块。然后为你的5条流实例化5次