package door import ( "fmt" "syscall" ) func Writer(handle syscall.Handle) { for output := range writerChannel { l := uint32(len(output)) buffer := []byte(output) WSA_Buffer := syscall.WSABuf{Len: uint32(l), Buf: &buffer[0]} UitnZero_1 := uint32(0) DataWrite := uint32(0) err := syscall.WSASend(handle, &WSA_Buffer, 1, &DataWrite, UitnZero_1, nil, nil) if err != nil { fmt.Printf("write: %d bytes, error: %#v\n", DataWrite, err) } if (err != nil) || (l != DataWrite) { close(writerChannel) break } } }