package door import ( "log" "syscall" ) func Reader(handle syscall.Handle) { buffer := make([]byte, 1) WSA_Buffer := syscall.WSABuf{Len: 1, Buf: &buffer[0]} read := uint32(0) flags := uint32(0) for { err := syscall.WSARecv(handle, &WSA_Buffer, 1, &read, &flags, nil, nil) if err != nil { log.Printf("Reader ERR: %#v\n", err) close(readerChannel) break } if read == 1 { readerChannel <- buffer[0] } else { log.Printf("READ FAILED %d\n", read) close(readerChannel) break } } }