| | |
| | | typ td |
| | | |
| | | recvData []byte |
| | | recvSliceHeader *reflect.SliceHeader |
| | | } |
| | | |
| | | // Send impl interface Diliver |
| | |
| | | |
| | | if s.recvData == nil { |
| | | s.recvData = make([]byte, maxRecvSize) |
| | | s.recvSliceHeader = (*reflect.SliceHeader)(unsafe.Pointer(&s.recvData)) |
| | | } |
| | | sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&s.recvData)) |
| | | sliceHeader.Cap = maxRecvSize |
| | | sliceHeader.Len = 0 |
| | | // sliceHeader.Cap = maxRecvSize |
| | | s.recvSliceHeader.Len = maxRecvSize |
| | | |
| | | n, err := s.rw.Read(s.recvData) |
| | | if err == nil || err == io.EOF { |
| | | sliceHeader.Len = n |
| | | s.recvSliceHeader.Len = n |
| | | return s.recvData, nil |
| | | } |
| | | |