Как создать сокет, используя функцию WSASocket на языке программирования go? - PullRequest
0 голосов
/ 03 ноября 2011

Кто-нибудь знает, как создать SOCKET, возвращаемый функцией WSASocket () на языке программирования go?

Использование обычного типа syscall.Socket syscall.Bind приводит к: WSAENOTSOCK - Ошибка 10038 - Была предпринята попытка выполнить операцию на чем-то, что не является сокетом. Указанный параметр сокета относится к файлу, а не к сокету.

Спасибо

1 Ответ

1 голос
/ 06 ноября 2011

Мы не используем API такого низкого уровня, мы используем net.Dial.напр.

func main() {
        var (
                host          = "127.0.0.1"
                port          = "9998"
                remote        = host + ":" + port
                msg    string = "test"
        )

        con, error := net.Dial("tcp4", remote)
        if error != nil {
                fmt.Printf("Host not found: %s\n", error)
                os.Exit(1)
        } else {
                defer con.Close()
        }

        in, error := con.Write([]byte(msg))
        if error != nil {
                fmt.Printf("Error sending data: %s, in: %d\n", error, in)
                os.Exit(2)
        }

        fmt.Println("Connection OK")

}

Или вы можете отследить код $ GOROOT / src / pkg / net / dial.go

...