Still having difficulties. I have tried both the Perl and the Python servers, and they are reachable on their respective ports when connecting from laptops on the same wifi. The log on the card indicates a successful join into my wifi network and the IP address is in the appropriate subnet.
Still, the card never makes an attempt to connect to the Linux TCP server. Everything works with the windows software on the computer where I did the initial setup. I turned off the software on windows and the whole windows computer but still no connect to the Linux server.
It is not clear to me how the card is supposed to pick a server on the wifi in the first place. Can somebody confirm or deny whether it is actually scanning all hosts for open port 59278? That sounds excessive, I mean I have a class B network here, that's a lot of scanning to do. But I don't see any setting where to tell the thing where to go. It isn't as stupid as trying to remember from where I set it up, right?
Here is what the log said for the successful upload to windows.
[00:14] WLAN State: Configured^M
[00:14] Received DHCP address 172.16.26.146.^M
[00:17] Scan for pending photos...^M
[00:17] Using resolved IP address 199.192.197.2:80 for server api.eye.fi.^M
[00:17] Scan for pending videos...^M
[00:19] Fetching card settings from server...^M
[00:19] Fetched transfer mode 0xc222 and geo enable 1 from server^M
[00:19] Background listener probe starting...^M
[00:21] Starting scan of media directories...^M
[00:21] Done scanning for new media (detected 35 MB in all media). Uploads pending.^M
[00:21] Scan for pending photos...^M
[00:22] Returning from upload function with error 350 ("/public/DCIM/100EOS7D/IMG_4374.JPG").^M
[00:22] Switched to agent for dynamic path online uploads^M
[00:23] Recovered partial digest from breadcrumb at offset 24651264 (0 to catch up).^M
[00:23] Uploaded 0 bytes at offset 24651264 for "/public/DCIM/100EOS7D/IMG_4374.CR2" as file ID 1 (desktop delivery)...^M
[00:23] Peer response for IMG_4374.CR2.tar was OK.^M
[00:23] Scan for pending videos...^M
[00:35] Uploaded 6310912 bytes at offset 0 for "/public/DCIM/100EOS7D/IMG_4374.JPG" as file ID 2 (desktop delivery)...^M
[00:35] Peer response for IMG_4374.JPG.tar was OK.^M
[00:38] Starting scan of media directories...^M
[00:38] Done scanning for new media (detected 35 MB in all media). Uploads pending.^M
[00:38] Scan for pending photos...^M
[00:38] Scan for pending videos...^M
[00:44] Uploaded 6195200 bytes at offset 0 for "/public/DCIM/100EOS7D/IMG_4375.JPG" as file ID 3 (desktop delivery)...^M
[00:44] Peer response for IMG_4375.JPG.tar was OK.^M
[00:45] Starting scan of media directories...^M
[00:45] Done scanning for new media (detected 35 MB in all media). Uploads pending.^M
[00:45] Scan for pending photos...^M
[00:45] Scan for pending videos...^M
From that it isn't clear either whether the thing uploads to the eye.fi server on the Internet or the local windows machine. It gives neither hostname nor port

It's this card: "Eye-Fi Pro X2 8 GB Class 6 SDHC Wireless Flash Memory Card EYE-FI-8PC"
Maybe this one uses a different TCP port or something?
I tried turning direct mode on and direct mode off, no change.