# Read data from Server socket

**URL:** <https://forum.sierrawireless.com/t/read-data-from-server-socket/5959>\
**Category:** Open AT\
**Created:** [November 14, 2012, 7:11am UTC](https://forum.sierrawireless.com/t/read-data-from-server-socket/5959 "2012-11-14T07:11:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ramzess478](https://avatars.discourse-cdn.com/v4/letter/r/c77e96/32.png) [@ramzess478](https://forum.sierrawireless.com/u/ramzess478)\
**Post date:** [November 14, 2012, 7:11am UTC](https://forum.sierrawireless.com/t/read-data-from-server-socket/5959/1 "2012-11-14T07:11:58Z")

</div>

The problem consists in that that, when opening socket the server and client connection implementation with PC. WIP\_CEV\_OPEN and WIP\_CEV\_WRITE events are created. A field of it I with PC send data and I see that WIP\_CEV\_READ event in the processor is created I read wip\_read this by means of the command but I receive error state number -999 WIP\_CERR\_CSTATE. I ask to prompt the possible reasons of such behavior. the part of a code is provided below.

static wip\_channel\_t socket0S = NULL;

void evh\_tcp\_server( wip\_event\_t \*ev, void \*ctx) {

```
wip_channel_t c = ev->channel;
int nread = 0;
switch ( ev->kind )
    {
        case WIP_CEV_OPEN:
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_OPEN");
        	 break;
        case WIP_CEV_READ:
        {
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_READ");

        		

        	nread = wip_read ( c, rcv_buffer, sizeof ( rcv_buffer ) );
        	if(nread > 0) {adl_atSendResponse ( ADL_AT_UNS,"\r\n Read Data from Buf Socket0S"); wm_sprintf_U32_((u32) nread);}
        	if(nread < 0)
        	{
        		adl_atSendResponse ( ADL_AT_UNS,"\r\n Read Data error code Socket0S");
        		wm_sprintf_U32_((u32) nread);	        		
        	}
        	if(nread == 0){adl_atSendResponse ( ADL_AT_UNS,"\r\n Read Data error nread == 0"); wm_sprintf_U32_((u32) nread);}
            break;
        }

        case WIP_CEV_WRITE:
        {
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_WRITE");
        	//nwrite = wip_write ( ev->channel, snd_buffer, sizeof ( snd_buffer ) );
            break;
        }

        case WIP_CEV_ERROR:
        {
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_ERROR");
            break;
        }

        case WIP_CEV_PEER_CLOSE:
        {
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_PEER_CLOSE");
            break;
        }

        default:
        {
        	adl_atSendResponse ( ADL_AT_UNS,"\r\n Server_WIP_CEV_default");
        	break;
        }
    }

```

}

void appli\_tcp\_entry\_point()  
{   
socket0S = wip\_TCPServerCreate ( (u16)ServerPort, &evh\_tcp\_server, NULL );  
}

---

<div class="post-metadata">

**Author:** ![ramzess478](https://avatars.discourse-cdn.com/v4/letter/r/c77e96/32.png) [@ramzess478](https://forum.sierrawireless.com/u/ramzess478)\
**Post date:** [November 15, 2012, 3:12am UTC](https://forum.sierrawireless.com/t/read-data-from-server-socket/5959/2 "2012-11-15T03:12:37Z")

</div>

in addition. Often in case of a read and write of data there is an application reset.  
I use versions:  
Open AT Framework: 2.51.0.201206190958  
Firmware 7.51.0.201205311751  
Q2687RD

---

<div class="post-metadata">

**Author:** ![ramzess478](https://avatars.discourse-cdn.com/v4/letter/r/c77e96/32.png) [@ramzess478](https://forum.sierrawireless.com/u/ramzess478)\
**Post date:** [November 15, 2012, 5:31am UTC](https://forum.sierrawireless.com/t/read-data-from-server-socket/5959/3 "2012-11-15T05:31:31Z")

</div>

additional information to a question.  
did experiment. after creation the channel requested parameters by means of function wip\_readOpts.  
function returned an error-998. it is possible to look at a working example about the server?  
or prompt where I am wrong in a code  
char buffer [512];  
int i, nread, nwrite;  
u32 SndBufsize;  
u32 RcvBufsize;  
u32 SndLowat;  
u32 RcvLowat;  
u32 Snd\_Timeaut;  
bool Nodelay;  
u8 Tos;  
u8 TTL;  
u32 RexmtMax;  
u32 Rexmt\_Maxcnt;  
socket0S = wip\_TCPServerCreate((u16) ServerPort, &evh\_tcp\_server, NULL);  
nread = wip\_readOpts( socket0S, buffer, sizeof( buffer),  
WIP\_COPT\_SND\_BUFSIZE, & SndBufsize,  
WIP\_COPT\_RCV\_BUFSIZE, & RcvBufsize,  
WIP\_COPT\_SND\_LOWAT, & SndLowat,  
WIP\_COPT\_RCV\_LOWAT, & RcvLowat,  
WIP\_COPT\_SND\_LOWAT, & Snd\_Timeaut,  
WIP\_COPT\_NODELAY, & Nodelay,  
WIP\_COPT\_TOS, & Tos,  
WIP\_COPT\_TTL, & TTL,  
WIP\_COPT\_REXMT\_MAX, & RexmtMax,  
WIP\_COPT\_REXMT\_MAXCNT, & Rexmt\_Maxcnt,  
WIP\_COPT\_END);

---

<div class="post-metadata">

**Author:** ![ramzess478](https://avatars.discourse-cdn.com/v4/letter/r/c77e96/32.png) [@ramzess478](https://forum.sierrawireless.com/u/ramzess478)\
**Post date:** [November 16, 2012, 9:28am UTC](https://forum.sierrawireless.com/t/read-data-from-server-socket/5959/4 "2012-11-16T09:28:04Z")

</div>

I am sorry for my English, but the help is very necessary. really anybody faced similar problems? If that that isn’t clear in the problem description, is ready to explain.
