Arduino Due TCP/IP connecting to a windows OS, nothing visible using Wireshark.

When trying to send UDP packets or connecting TCP from the Arduino Due to a windows machine, nothing seems to be working.
No packets are visible in Wireshark whatsoever, firewalls/antivirus all disabled.
Using the example code with only the IP/port settings changed.

Actual code used to test here: http://i.imgur.com/kBzO54R.jpg

What does work is pinging the IP of the Arduino Due or, opening a TCP connection from the windows machine to the Arduino. Which is the commented out C# code.

But the other way around, absolutely nothing seems to work.

Does anyone have any idea what might be the issue?

What code did you use on the Due? You don't need to run any program on the Windows machine, at least a SYN packet should be visible in WireShark if the Due really tries to open a connection. How did you connect the Due to the PC? A switch, a router, crossover cable?

Check the Windows firewall. Insure it allows UDP and the port.

Actual code used to test here

Are you looking for a picture of an answer?

Found the issue.

In the example I posted, on the Ethernet.Begin() I only provided the MAC and IP.
Which makes the default subnet default to 255.255.255.0 according to the documentation on, Ethernet - Arduino Reference

So I added dns, (which apparently was already defined in Dhcp.h and caused a compile error), then gateway and then finally the correct subnet, 'Ethernet.begin(mac, dns,ip,gateway,subnet);'

From here on, everything worked perfectly as expected. Except for having to add a delay(1000); after the Ethernet.begin() before calling any other Ethernet related functions. Without the delay Ethernet wouldn't work at all, except for right after the programming. But as soon as you reset/reboot the Arduino, it wouldn't work ever again until programmed again.

However!!

A lot of examples and documentation on the site don't seem to mention 'dns' in the Ethernet.Begin()
Worse yet, they are often documented/used as followed

 Ethernet.begin(mac, ip, gateway, subnet);

Which is completely non functional! As this will make the device lookup the mac address for the ip of the given subnet!
The subnet in this example will still be the default, the gateway will be the subnet, and the dns will be the gateway.
This obviously creates problems and doesn't work.

However, weirdly, it does work if you swap places of subnet and gateway in this example.

 Ethernet.begin(mac, ip, subnet, gateway);

Then it suddenly gets the subnet right and I was able to communicate with the Arduino.
Very odd if you ask me because according to the documentation, the subnet should still be the default as that's the 5th parameter which wasn't provided.

Either way, everything is working fine now using the code below

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h> 

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10,9,10, 10);
IPAddress gateway(10,9,1, 1);
IPAddress myDNS(10,9,1,111);
IPAddress subnet(255, 255, 0, 0);

void setup() {
 Ethernet.begin(mac, ip,myDNS, gateway, subnet);
 delay(1000);
}