lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Nonblocking sockets problem


From: Åke Forslund
Subject: Re: [lwip-users] Nonblocking sockets problem
Date: Thu, 15 Mar 2012 08:25:24 +0000

Thanks Simon,

it's good to know that the code should work. Threadpriorities are: tcpip-thread 
(and all threads created by lwip I think) has a higher prio than the 
application thread. The telnet thread is not the only thread running, I have a 
thread handling changes in the network (link down, etc.) running and some 
threads not related to lwip at all. I'll modify my system to only launch the 
essential threads and retest. I better look into my porting layer to make sure 
my priority assignment-scheme is as sane as I think it is.

Thanks for the hints, I'll test some more and try to figure out what I have 
done wrong.

/Åke

-----Ursprungligt meddelande-----
Från: address@hidden [mailto:address@hidden För address@hidden
Skickat: den 14 mars 2012 19:26
Till: Mailing list for lwIP users
Ämne: Re: [lwip-users] Nonblocking sockets problem

Åke Forslund wrote:
> I see my mistake there, however even with code that is at least theoretically 
> sane I can't establish a connection. lwip_accept() always returns EWOULDBLOCK 
> for me.
>
> from socket debug:
> lwip_accept(0)...
> lwip_accept(0): returning EWOULDBLOCK
> [Repeats forever]
>
> putty reports "Connection closed by remote host" followed by "Network error: 
> Software caused connection abort" or "Connection reset by Peer"

I have pasted your code into test.c in the Win32 port from contrib, removed 
your application-specific code, checked the return value of
lwip_accept() and I could successfully connect using telnet.exe provided with 
windows XP.

If it's not working for you, that suggests  a problem either in your port or in 
the client application, I guess... What are the thread priorities in your 
system? Are you sure there is only one thread active in lwIP at a time? Because 
that's the main difference between the blocking and your non-blocking version: 
the blocking version just sits there and waits for a callback that lets 
lwip_accept return, while the non-blocking version calls into tcpip_thread 
*very* often - if your threading is broken, there's a good chance this will be 
revealed by your way of using non-blocking sockets.

Simon

_______________________________________________
lwip-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/lwip-users

reply via email to

[Prev in Thread] Current Thread [Next in Thread]