Android:替代TCP环回套接字连接以获得更好的性能

时间:2013-01-31 12:00:33

标签: android sockets android-ndk loopback unix-socket

使用Android NDK(2.3及以上版本)开发网络库

  

之情况

  1. 第三方应用程序(基于TCP套接字)与我们的本机库通信。
  2. 我们的图书馆处理这些数据,然后与a进行通信 服务器使用TCP套接字通信。沟通是 双向。
  3. 我们已经设计并实现了第三方应用程序和我们的IPC库之间的套接字通信机制。我们的库正在利用第三方应用程序端口(默认值:6700)来建立服​​务器之间的连接。

    因此,它是一种环回连接,通过它我们的库和第三方应用程序之间进行通信。

      int on = 1;
    setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
    bind(s, (struct sockaddr *) &sin, sizeof (sin));
    
      

    问题区域

    一切正常,但由于此原因,性能会降级。如果没有网络库,则通信速度非常快。为了验证问题在于loopback tcp socket,我们删除了库的所有内部处理。该库只是作为应用程序的伪服务器(传递)。该应用程序将数据发送到localhost和socket,并且库只是将其转发到服务器。

    >查询

    那么有什么方法可以提高性能吗?

    1)Android上的UNIX域套接字怎么样,它们可以在app和我们的库之间使用吗?

    2)可以使用Binders在用户级应用程序和原生Android库之间进行通信吗?

    3)或者我们是否有类似IOCTL SIO_LOOPBACK_FASTPATH的东西(应用于发送和接收套接字的套接字IOCTL SIO_LOOPBACK_FASTPATH启用了TCP环回快速路径。)Transmission Control Protocol (TCP) Loopback Optimization

    非常感谢提前

0 个答案:

没有答案