2

LocalServerSocket如果 Android和 Java之间有什么区别ServerSocket?它们有相同的功能吗?我认为 LocalServerSocket 是 Linux 的ServerSocketJavaServerSocket实现,Java 自己实现。所以LocalServerSocketServerSocket具有相同的功能。我对吗?谢谢。

4

1 回答 1

0

我面对这个问题,我发现了很多令人惊奇的东西。

ServerSocket:等待请求通过网络进入。它根据该请求执行一些操作,然后可能将结果返回给请求者。它使用网络协议进行通信。

LocalServerSocket: 创建一个以指定名称监听的新服务器套接字。在 Android 平台上,名称是在 Linux 抽象命名空间中创建的(而不是在文件系统上)。

套接字系列用于有效地在同一台机器上的进程之间进行通信。传统上,UNIX 域套接字可以是未命名的,也可以绑定到文件系统路径名(标记为套接字类型)。 Linux 还支持独立于文件系统的抽象命名空间。

套接字权限对抽象套接字没有意义:进程 umask 在绑定抽象套接字时没有影响,改变对象的所有权和权限(通过 fchown 和 fchmod)对套接字的可访问性没有影响。当所有对套接字的打开引用都关闭时,抽象套接字会自动消失。抽象套接字命名空间是一个不可移植的 Linux 扩展。

这两者在通信和权限方面存在差异。

更多信息: http:
//man7.org/linux/man-pages/man7/unix.7.html
https://developer.android.com/reference/android/net/LocalServerSocket
https://developer.android.com /reference/java/net/ServerSocket

于 2018-08-16T07:30:32.737 回答