Hejsan När du säger att det inte fungerar bakom NAT, visst menar du att det inte går att ta emot inkommande trafik från nätet då?System.Net.Sockets.Udpclient
Försöker skapa en klass som hanterar UDP-trafik.
Använder mig av System.Net.Sockets.Udpclient.
Jag har fått det att funka mellan två datorer men ej för datorer bakom NAT. Vad är det som saknas? Koden är för tillfället ostrukturerad och okommenterad pga många timmars misslyckat hackande så jag inkluderar den inte, men den som sysslat med detta kan ju gärna beskriva vad det är som ska till för att få NAT att funka.Sv: System.Net.Sockets.Udpclient
Det finns två (eg. tre) lösningar:
1) Öppna porten/portarna manuellt i din bredbandsrouter/brandvägg/NAT-moj/whatever och skicka vidare all trafik till de portarna till din maskin
2) Använd upnp om bredbandsroutern stödjer det, du måste själv be bredbandsroutern att öppna de portar du behöver för inkommande trafik genom att skicka ett speciellt meddelande till det
Dessutom finns en annan variant som t.ex. hamachi och (tror jag) skype använder, dock för tcp/ip; med häjlp av en fristående, nåbar, server bestäms vilka portar som ska användas. Sedan "ansluter" var klient för sig till den andre genom att skicka rätt kommandon. Då kommer det utgående paketet att "lura" NAT-enheten på vägen ut att en tcp/ip session ska upprättas. Då börjar den släppa igenom trafik även inåt på den porten. Dock överkurs, och jag är inte insatt i alla detaljer. Dessutom vet jag inte till 100% om den går att köra med annat än just tcp/ip beroende på vissa skillnader i tcp/ip och udp. (I udp finns inte anslutningar på samma sätt som i tcp/ip)
"Felet" har alltså ingenting med .NET, winsock eller windows att göra, det har med protokollet udp att göra och hur det är uppbyggt.