I am connecting from my PC to a Q2687 module vial TCP socket using normal usb modem.
sometimes the sending function in my application succeed but I see nothing coming to the module, especially when the module is on another GSM cell.
I understand that TCP protocol is reliable that if data doesn’t reach the destination it must report to the sender to send it back or timesout. Is this also the case for TCP over GPRS ?
in other words is there a case where data could be lost in a TCP socket connection and the sender don’t know about it?
Because I don’t know if this problem is with the module’s firmware or the the GPRS network.
TCP does not guarantee delivery in general. It reports good delivery when packet reaches GPRS gateway and then it is the users duty to check delivery to the destination point.
Yes. TCP is most reliable over GPRS if signal level is good enough (no protocol used by wireless device is reliable in poor signal situation). Unlike cable client/server networking, GPRS server may not detect the client, say wireless modem, dropped sometimes. Therefore, the application level protocol, such as HTTP, build on TCP transport layer may be needed in your client/server design. The application level protocol has to solve endianess (if binary data transaction under diversity endian between client and server) and disconnection issues.
Do you mean that HTTP can solve my problem?
If I use HTTP to send my data I will be sure if the data was delivered successfuly or not?
because I am new to HTTP protocol I don’t know much about it.