Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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
C 如何使用minix3虚拟机作为服务器,Ubuntu作为客户端来选择sun_路径?(Unix域套接字)_C_Linux_Sockets_Minix - Fatal编程技术网

C 如何使用minix3虚拟机作为服务器,Ubuntu作为客户端来选择sun_路径?(Unix域套接字)

C 如何使用minix3虚拟机作为服务器,Ubuntu作为客户端来选择sun_路径?(Unix域套接字),c,linux,sockets,minix,C,Linux,Sockets,Minix,因此,我使用C编程创建了一个套接字。我在Minix3虚拟机中将/usr/src/server/pm中的服务器创建为server.c,在主机操作系统(Ubuntu机器)中将/usr/Desktop下的客户端创建为client.c。在strcpy(name.sun\u path,path)中,我面临为两个文件选择sun\u路径名的问题。当我在主机上运行这两个文件时,我只需定义一个全局变量,例如#define SOCK_PATH“socket”,并将其用作strcpy函数中的第二个参数,它就工作了,但

因此,我使用C编程创建了一个套接字。我在Minix3虚拟机中将
/usr/src/server/pm
中的服务器创建为server.c,在主机操作系统(Ubuntu机器)中将
/usr/Desktop
下的客户端创建为client.c。在
strcpy(name.sun\u path,path)
中,我面临为两个文件选择sun\u路径名的问题。当我在主机上运行这两个文件时,我只需定义一个全局变量,例如
#define SOCK_PATH“socket”
,并将其用作strcpy函数中的第二个参数,它就工作了,但当我将服务器放在minix虚拟机中时,客户端会抛出一个错误,表示没有这样的文件或目录。对于客户端和服务器,我必须在sun_路径中放置什么?

您放置了要创建套接字的路径。这两个文件上的路径必须完全相同吗@如果他们以/开头,那么是的。另外,据我所知,Unix套接字只在同一台计算机上工作,而虚拟机假装是另一台计算机,因此不能在虚拟机之间使用它们。(然而,我对Minix并不熟悉,也许Minix虚拟机与我所想的有所不同)@immibis是对的。不能在虚拟机之间使用unix域套接字。您可以在每个虚拟机中使用一个守护进程,使用IP或一些跨虚拟机协议(一些虚拟机容器支持虚拟机之间的特殊协议)彼此通信,并充当虚拟机之间的unix域“桥梁”,但这太复杂了。改用UDP套接字。