client use fixed buffer