首页 > 解决方案 > 如何在 Windows 上将 syscall.Handle 转换为 net.Conn?

问题描述

考虑以下:

if fd, err = syscall.Socket(family, syscall.SOCK_STREAM, syscall.IPPROTO_TCP); err != nil {
    return
}

// do something on fd like bind ...

if err = os.NewSyscallError("connect", syscall.Connect(fd, sockaddr)); err != nil {
    syscall.Close(fd)
    return
}

f := os.NewFile(uintptr(fd), "socket")
conn, err = net.FileConn(f)
if err != nil {
    fmt.Println(err)
    f.Close()
    syscall.Close(fd)
}

结果:file file+net socket: not supported by windows

有什么方法可以在 Windows 上syscall.Handle转换为 a吗?net.Conn

我使用 Windows 10 并转到版本 1.10.3 windows/amd64

标签: windowsgo

解决方案


推荐阅读