I am able to send msg through GSM modem. But i am not able to read msg. Somebody plz help me.
"but you could provide a common interface"
Yes, it's quite common to implement a low-level layer with send/receive support and making use of two ring-buffers of configurable size. Optionally with support for reporting a timeout if no data is received within a given time period or (in case the link uses handshake) if no data has been possible to send for a while.
Even better is to have the receive driver support a configurable record-termination character allowing you to call a get-record function that returns a full record (text line), or timeouted partial data or a "check again later - still receiving data", or finally a "buffer full without termination character".