TCP/IP on embedded devices is not robust enough to act as webservers or other server type setups. This is a limitation of their connectivity. Anything IoT CAN NOT be reliably used as a server.
Its taken me 5 years to come to this realization. Hope it helps someone else.
I use G120 as an embedded device in an industrial environment, and I always use it as an TCP server and TCP client and FTP server, and and and all at the same time in parallel.
These things run and run and run.
So far I have not a single complain about that the device would not be reliable.
The devices run 24/7, no regular reset.
Production runs about 16/6 in most, and 24/6 in some plants.
Well, I had some issues in cancelling outdated sessions once, then I got an OutOfMemoryException. But this was when around 6 or 7 times the normal number of parallel task were started.
So I guess it depends on the use case and a lot on robust programming skills (no offence intended here).
Reinhard Ostermeier, hit the nail on the head. "at the same time in parallel"
Honestly, the only time I ever ran into what it seems like you are talking about is when i was locked into using a non RTOS environment, where I was unable to spin off new connections as background task. In a nut shell if you have a device that is able to accept a connection, and your using a RTOS then I cannot see any reason (other than ram, flash & speed) that would hold you back from many connections at the same time.
Sounds like you got frustrated, don’t give up! I haven’t run into a IoT device yet that I ran into this. Keep at it…
NOTE: if your using arduino, then I could see that being a bit of a PITA. But if its GHI’s stuff, you will be fine.
More correctly, the TCP/IP stack in NETMF 4.3 is unreliable. It’s not “embedded devices” that are the problem, it’s the implementation of the TCP/IP stack in NETMF 4.3. They’re working on that for 4.4.
If you mean NETMF devices with “embedded devices”, then you may be right (hopefully only until 4.4 is out).
But as a more general statement, I don’t agree at all. Often it is quite natural to treat an embedded device as a server. And very often even as both a client and a server.
@ Cuno - I’ve been informed that Windows 10 on intel edision isn’t intended to be a server. This threw me for a loop. Now considering that business servers have ECC memory and embedded devices don’t, I think the problem is the definition of a server. How can you be reliable or fault tolerant with no ECC?