Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 套接字路径中的@是什么。例如:@/存储/我的袜子_Java_Android_Sockets - Fatal编程技术网

Java 套接字路径中的@是什么。例如:@/存储/我的袜子

Java 套接字路径中的@是什么。例如:@/存储/我的袜子,java,android,sockets,Java,Android,Sockets,套接字路径中的@是什么 我正在使用LocalServerSocket()打开unix套接字 与其他套接字不同,我的套接字的前缀是@。此外,我还检查了/storage分区。我找不到在那里生成的套接字 我创建套接字的代码如下所示 LocalServerSocket lss = new LocalServerSocket("/storage/my_sock"); LocalSocket sock = lss.accept(); InputStream ins = sock.getInputStream

套接字路径中的
@
是什么

我正在使用
LocalServerSocket()
打开unix套接字

与其他套接字不同,我的套接字的前缀是
@
。此外,我还检查了
/storage
分区。我找不到在那里生成的套接字

我创建套接字的代码如下所示

LocalServerSocket lss = new LocalServerSocket("/storage/my_sock");
LocalSocket sock = lss.accept();
InputStream ins = sock.getInputStream();

我的想法是从Java打开一个本地服务器套接字,并使用作为与本机C应用程序交互的通信通道。但是由于路径无效,我无法实现这一点。

@在unix套接字路径中表示它们是抽象套接字。在磁盘上看不到Abstract套接字。在android中,
LocalServerSocket()
创建抽象套接字

安卓: 本地人: 从本机应用程序中,为了打开相同的抽象套接字,请定义
sun\u路径
,如下所示

sock.sun_family = AF_UNIX;
sock.sun_path[0] = '\0'
strcpy(&sock.sun_path[1], "my_sock");
sock_fd = socket(AF_UNIX, SOCK_STREAM, 0);
len_addr = offsetof(struct sockaddr_un, sun_path) + strlen("my_sock") + 1;
res = connect(sock_fd, (struct sockaddr *)&sock, len_addr);

请注意,
sun\u path
的第一个字节是'\0',实际名称从
&sun\u path[1]
继续。通过遵循这个命名套接字的命名约定,系统识别我们想要在抽象套接字上操作,并为我们提供一个抽象套接字。

@在unix套接字路径中,表示它们是抽象套接字。在磁盘上看不到Abstract套接字。在android中,
LocalServerSocket()
创建抽象套接字

安卓: 本地人: 从本机应用程序中,为了打开相同的抽象套接字,请定义
sun\u路径
,如下所示

sock.sun_family = AF_UNIX;
sock.sun_path[0] = '\0'
strcpy(&sock.sun_path[1], "my_sock");
sock_fd = socket(AF_UNIX, SOCK_STREAM, 0);
len_addr = offsetof(struct sockaddr_un, sun_path) + strlen("my_sock") + 1;
res = connect(sock_fd, (struct sockaddr *)&sock, len_addr);

请注意,
sun\u path
的第一个字节是'\0',实际名称从
&sun\u path[1]
继续。通过遵循这个命名套接字的命名约定,系统识别出我们想要在抽象套接字上操作,并为我们提供一个抽象套接字。

什么样的分区是/存储?它是一个外部设备还是什么?@Am_I_它是Android系统中的一个tmpfs分区。@chrylis非常感谢。。我现在明白了。但是我想知道有没有办法绕过它,创建一个普通的套接字,或者我是否可以使用这个来自我母语的抽象套接字application@chrylis如果sun_路径中的第一个字节为“\0”,则套接字被视为抽象套接字。我试试看。非常感谢你。你共享的链接真的很有帮助。/存储是什么类型的分区?它是一个外部设备还是什么?@Am_I_它是Android系统中的一个tmpfs分区。@chrylis非常感谢。。我现在明白了。但是我想知道有没有办法绕过它,创建一个普通的套接字,或者我是否可以使用这个来自我母语的抽象套接字application@chrylis如果sun_路径中的第一个字节为“\0”,则套接字被视为抽象套接字。我试试看。非常感谢你。你分享的链接真的很有帮助。。
sock.sun_family = AF_UNIX;
sock.sun_path[0] = '\0'
strcpy(&sock.sun_path[1], "my_sock");
sock_fd = socket(AF_UNIX, SOCK_STREAM, 0);
len_addr = offsetof(struct sockaddr_un, sun_path) + strlen("my_sock") + 1;
res = connect(sock_fd, (struct sockaddr *)&sock, len_addr);