>>But this snippet should open that up right?
>>WiFiServer MbServer(MB_PORT);
Don't know. Can only say that it didn't. I did not see this source code for this from your link - so can not be sure (again, may have missed it). Not a code expert anyway, just a hack, so could not promise I could debug just by looking at it. I have a Udoo board with quad core ARM/Arduino, but I usually stick with the Linux side of things so never pushed the system this far.
If you are getting to the point of having a TCP RST come back from your connection attempt you can be pretty sure your networking infrastructure is good. Wireshark shows your issue lies with the application at this point - how to get a proper application executed. In my view, you cut the problem way down in scope, which is always useful.
On many full-blown OS's currently in use, we use netstat to see what is going on under the hood. So from inside out, we can use netstat, like
Linux: netstat -tnl
Windows: netstat -p tcp -a -n
and these will list the ports that are listening. With some other options, like -b for Windows or -p for Linux, we might even get the process that is handling those. So if your code was running on Linux, I would expect to see your process listed for what is listening on port 502 on my machine. But you have a common issue, as we usually do with embedded systems: no shell, and so no netstat. So only way to determine what is listening is from the outside in, with a port scanner. This is easier than it sounds - with embedded systems that are poorly designed, the very act of scanning the system can cause crashes and other issues giving no, or worse, false positive/negative results. It can also be problematic determining what is running or listening on that port from the outside. If it is a webserver or ftp server (for example; smtp as well) it might identify itself. For an industrial protocol server, forget it. You may be able to determine what is under the hood by specific behavior, but it can be tough.