Windows 是否可以在WSL环境外部访问的WSL中创建虚拟串行端口?

Windows 是否可以在WSL环境外部访问的WSL中创建虚拟串行端口?,windows,serial-port,windows-subsystem-for-linux,Windows,Serial Port,Windows Subsystem For Linux,我有一个串行设备,我正在使用socat通过网络从linux设备桥接到运行在windows设备上的WSL。在WSL方面,是否可以使socat创建的虚拟串行端口对运行在WSL之外的Windows上的应用程序可见 我有一个使用HW虚拟串行端口的解决方案,但我很好奇是否有一种纯粹从WSL实现这一点的方法。这些不是直接的解决方案,但我希望它们会有所帮助 没有答案,但有一个类似的问题。 之后,它似乎得到了内部版本17063/17093的版本17107的支持。 不支持\不可用: 综上所述,以下Linux

我有一个串行设备,我正在使用socat通过网络从linux设备桥接到运行在windows设备上的WSL。在WSL方面,是否可以使socat创建的虚拟串行端口对运行在WSL之外的Windows上的应用程序可见


我有一个使用HW虚拟串行端口的解决方案,但我很好奇是否有一种纯粹从WSL实现这一点的方法。

这些不是直接的解决方案,但我希望它们会有所帮助

没有答案,但有一个类似的问题。


之后,它似乎得到了内部版本17063/17093的版本17107的支持。

不支持\不可用:
综上所述,以下Linux unix套接字功能当前在Windows unix套接字实现中不可用或不受支持

  • AF_UNIX数据报(SOCK_DGRAM)或序列数据包(SOCK_SEQPACKET)套接字类型
  • 辅助数据:Linux的unix套接字实现支持通过套接字传递辅助数据,例如传递文件描述符(
    SCM\U权限)
    )或凭据(“SCM\U凭据”)。Windows unix套接字实现中不支持辅助数据
  • 自动绑定功能(有关详细信息,请参阅“sockaddr__n”一节)
  • socketpair:Winsock 2.0不支持socketpair套接字API

要求和限制:

  • WSL Unix套接字只能与Win32 Unix套接字或WSL Unix套接字通信,但不能同时与两者通信。例如,WSL Unix套接字服务器只能接受来自WSL Unix套接字或Win32 Unix套接字的连接。那么,如何确定是哪一个呢?它基于套接字绑定或连接到的路径,如
    bind
    connect
    syscall中所指定。如果Unix套接字路径是DrvFS路径(即安装在WSL中的系统卷,例如:/mnt/c、/mnt/d等),则它只能与Windows Unix套接字通信。如果路径是LxFS路径(即WSL中的Linux装载卷,例如:/home、/var、/usr等),则它只能与WSL Unix套接字通信
  • 要使WSL Unix套接字与Windows Unix套接字建立连接,创建套接字后的第一个操作应该是绑定或连接。套接字上的任何其他操作都将使其成为只能与其他WSL Unix套接字通信的专用WSL Unix套接字
  • 由于Windows Unix套接字实现目前不支持传递辅助数据,例如
    SCM\u权限
    等,因此Unix套接字上的Win32WSL互操作也不支持辅助数据
  • 这可能是您所说的硬件虚拟串行端口。

    此后,套接字关系似乎有各种修改。


    甚至其他使用socat的程序似乎也能工作,但有些程序似乎不稳定。