change the type of length
diff --git a/rpc_util.go b/rpc_util.go
index 5394034..d86b2de 100644
--- a/rpc_util.go
+++ b/rpc_util.go
@@ -164,7 +164,7 @@
 	// Write message into the fixed header.
 	buf.WriteByte(uint8(pf))
 	var b []byte
-	var length uint32
+	var length uint
 	if msg != nil {
 		var err error
 		// TODO(zhaoq): optimize to reduce memory alloc and copying.
@@ -172,13 +172,13 @@
 		if err != nil {
 			return nil, err
 		}
-		length = uint32(len(b))
+		length = uint(len(b))
 	}
 	if length > math.MaxUint32 {
 		return nil, Errorf(codes.InvalidArgument, "grpc: message too large (%d bytes)", length)
 	}
 	var szHdr [4]byte
-	binary.BigEndian.PutUint32(szHdr[:], length)
+	binary.BigEndian.PutUint32(szHdr[:], uint32(length))
 	buf.Write(szHdr[:])
 	buf.Write(b)
 	return buf.Bytes(), nil