Hi Sylvain, all rigth? I am here again...
Sorry, but the problem continues. Please but I have a suspicion. First I explain you the status.
1) My setup is very simillar to your. I have two VM´s (Ubuntu) in a Win-7 host. Serial
using the "Host pipe" VirtualBox method.
2) Today (jan/21/2016), I updated my lwip and lwip-contrib git-repos changing just the two files sent to you (lwipopts.h and simhost.c) in the ".../lwip-contrib/ports/unix/proj/unixsim" directory. Master branch.
3) In the VM#1, I run the pppd (linux), passive mode. Just after, the "simhost" app is executed in VM#2. The link ppp is established, with no problem. I think that validates the serial and PPP connections.
The problem is with TCP mode. Today I use also the netcat tool like you. No problem (example in client side: echo "TEST" | nc 192.168.123.21 7).
I have a suspicion when the client opens and uses the same connection to exchange several echo messages different from "netcat" behavior. I think.
Thus I picked up a echo-client int the internet (thank to Silver Moon). When I use this "original client" the problem happens after 3 or plus echo messages like in my implementation.
But when I use the "changed client" (open and close socket for each echo message/prompt), no problem, all works fine.
Please, could you test the two attached clients files in your setup (on pppd server host) ? Is there sense in my suspicion?
OBS:
> gcc echo_client_original.c -o echoClientOriginal
> gcc echo_client_changed.c -o echoClientChanged
Thanks.
Norberto