Author |
Topic |
|
3961
8 Posts |
Posted - 07 Apr 2003 : 12:20:57
|
we are equipped with the GC+ unit running CE 3.0, and are developing some raw socket communication code talking to a VxWorks machine.
it works great, except occassionally we get greeted with a SOCKET_ERROR (and WSAGetLastError() returns 10054) while calling send().
10054 translates to WSAECONNRESET, but i'm not sure why it happens. i examined the possible causes but i can't imagine our code causing any of it (such as explicity sending a RST, etc). i was wondering if anyone can help us out with this problem?
the socket FD was created by fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); and the send call is used like result = send(fd, (char*)buffer, BUFFER_SIZE, 0);
thanks! |
|
robertbowen
10 Posts |
Posted - 08 Apr 2003 : 14:39:23
|
Do you have any watchdog timers running on your remote VXWorks machine that monitors the activity of your socket connection?
For example, in my application (using GM+ winCE 3.0) which acts a server, once a client has connected, I fire off a Watchdog timer to monitor the TCP connection. If the client disconnects ungracefully (unplugs ethernet cable) the GM+ terminates the connection. As a result, WSAGetLastError reports 10054.
Although my watchdog timer is programmed in software, I was wondering if your VXworks client does something similiar?
Just a thought. I have not had any problems with using winsock for raw socket communications on the GM+.
Regards, Robert |
|
|
akidder
1519 Posts |
Posted - 03 Jun 2003 : 14:52:25
|
3961, you didn't mention what build of CE you've been using, but you might consider using a more current build for the GC Plus. Early this Spring we did further development on the Ethernet drivers that might make a difference in your application.
Try build 3.48 or later from the build selector and let us know how it goes. |
|
|
|
Topic |
|
|
|