Linux socket problem. Ikke alle UDP pakker sendes med 3G-modem?
HejJeg har et problem med sockets i Linux og funktionen sendto (UDP).
I en for-løkke kaldes sendto et vis antal gange, eksempelvis 20. Herved sendes 20 "pakker" af hver ca. 110 bytes afsted til modtageren. Dette virker fint ved LAN og WLAN, hvor alle pakkerne bliver sendt af sted (det kan jeg se i Wireshark). Men hvis jeg tilslutter mit 7.2 mbit 3G-modem, hvor signalstyrken er rigtig god, så kan jeg se i Wireshark at ikke alle pakker bliver sendt afsted. Det er sådan set ret systematisk, at det kun er de første 6 "pakker" der sendes.
Efterfølgende har jeg prøvet med et delay (usleep i 50 msec.), hvorved alle 20 pakker bliver sendt af sted. Det er dog ikke en brugbar løsning, da dette delay afhænger af pakkestørrelsen, som varierer og kan være større end 110 bytes (maksimalt 1400 i mit tilfælde).
Jeg har prøvet at ændre på SO_SNDBUF via setsockopt samt at anvende poll() med POLLOUT, hvilket ikke har hjulpet.
Er der nogle som har nogle idéer eller gode råd?
Ulrik
Ovenstående må betyde, at