Jake, Thanks for the reply. Csrc.Read is what I was referring to as the connection standard read, should not have used the words "standard read" sorry about that. The problem I am trying to solve is reading an unknown amount of byte data. I am trying to understand what triggers the Csrc.Read(buf) to return when I send say 3 bytes to it with a client, I also keep the connection open and send a few bytes of characters with the netcat tool, the Csrc.Read returns, but the snip it below that with ReadAll does not return. I am trying to understand the underlying behavior of what triggers a return with the data in these two calls ?
on this read : Csrc net.Conn buf := make([]byte, 1024*32) // READ FROM CLIENT nBytes, err := Csrc.Read(buf) Csrc.Read(buf) returns with a few bytes that I send to it. It does not wait for the entire allocated buf size to return. This works great, but I am looking for a way to not preallocate a large buffer. I am prototyping with ReadAll, see the following snip it, but when I send a few bytes to this call with a client, it does not return. The documentation is saying it may be looking for an EOF which I do not send. buf, read_err := ioutil.ReadAll(Csrc) thanks, Ron On Friday, December 27, 2019 at 5:11:42 PM UTC-7, Ron Wahler wrote: > > I am looking for a net.conn standard read that would return a data buffer > the exact size of the read. I am trying to read an unknown amount of byte > data from the connection. With the read i am using I am required to > pre-allocate a buffer and pass that buffer to the read. I am looking for a > read that works more like the ReadString , but is for a byte slice. > > // I want something similar to this read that returns the read string into > the message string. > > message, err := bufio.NewReader(ServerConn).ReadString('\n') > > if ( err != nil ){ > > fmt.Println("RELAY: ERROR: Reg Message read > err:", err) > > return > > } > > > > // had to preallocate a buffer, but I want a read to return me a buffer so > I don't have to guess how big to make it. > > buf := make([]byte, 1024*32) > > // READ FROM CLIENT > > nBytes, err := Csrc.Read(buf) > > > > Is this not possible, I have not seen any examples that would indicate > that there is a standard library that would do something like what I am > looking for. > > > thanks, > > Ron > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/cd1f26d6-72aa-4239-83f2-18dc6220c2db%40googlegroups.com.