Assuming you're using LabVIEW, you can create an array of data you wish to send (U8), convert it to a string, and then use the VISA write vi. For reads, use the VISA read vi and request the number of bytes you wish to read.
I still have one question. The data that I read is the array [2048] of unsigned short int (that means I will read 2048*2 bytes). Do you have an idea to read data in every 2 bytes ?
The serial port doesn't know about U16 or U32, just bytes. So your application will need to convert the bytes to U16. There is an easy way to do this in LabVIEW using the Join Numbers vi. It takes two bytes and spits out a U16 (or two U16's and spits out a U32). Very handy.