Problem in TCP client - server connection

I have two Q2687 modules.
I programmed one of them with the sample application TCP_Server, and the other with the sample application TCP_Client.

the sever gave the following result:

[GPRS]: open: -> DISCONNECTED
[GPRS]: start: -> CONNECTING
[GPRS]: GPRS EVENT SETUP OK (cid=1): GPRS activate
[GPRS]: GPRS EVENT: 27 (cid=1)
[GPRS]: GPRS EVENT ACTIVATE OK (cid=5)
[GPRS]: GPRS: -> CONNECTED
[WIP] new TCPSERVER 0x180c5fa8

while the client gave:

[GPRS]: open: -> DISCONNECTED
[GPRS]: start: -> CONNECTING
[GPRS]: GPRS EVENT SETUP OK (cid=1): GPRS activate
[GPRS]: GPRS EVENT: 27 (cid=1)
[GPRS]: GPRS EVENT ACTIVATE OK (cid=5)
[GPRS]: GPRS: -> CONNECTED
[SAMPLE]: connecting to client 10.70.70.41:2000...
[WIP] new TCPCLIENT 0x180c60dc

As I know the client must send something to the server automatically. but nothing happen at the server side.

then after a while the client closes the TCPCLIENT

[SAMPLE]: Error -986 on socket. Closing.
[WIP] closing TCPCLIENT 0x180c60dc
[GPRS]: GPRS EVENT: 27 (cid=5)

what is that error -986
is there something missing?

please help

working with M2M Studio Ver1.02

WIP Error codes are listed in the WIP documentation…

This is “connection timeout” error.

Here is code from wip_channel.h file:

typedef enum wip_error_t {
  WIP_CERR_OK = 0,
  WIP_CERR_ABORTED = -1000,
  WIP_CERR_CSTATE,
  WIP_CERR_NOT_SUPPORTED,
  WIP_CERR_OUT_OF_RANGE,
  WIP_CERR_MEMORY,
  WIP_CERR_INTERNAL,
  WIP_CERR_INVALID,
  WIP_CERR_DNS_FAILURE,
  WIP_CERR_RESOURCES,
  WIP_CERR_PORT_IN_USE,
  WIP_CERR_REFUSED,
  WIP_CERR_HOST_UNREACHABLE,
  WIP_CERR_NETWORK_UNREACHABLE,
  WIP_CERR_PIPE_BROKEN,
  WIP_CERR_TIMEOUT,

  WIP_CERR_LAST = WIP_CERR_TIMEOUT
} wip_error_t;

Are you sure that 10.70.70.41 is your q2696-server IP? Is this public IP?

In my operator’s GPRS network and standard APN each of GPRS clients “didn’t see” eachother even they has IP adresses like this:
10.70.70.41 (server)
10.70.70.31 (client)

In my case I must buy additional service - public IP for SIM-card which is supposed to be a server.