A lényeg csak annyi, hogy a gépemen lévő TCP küldő socket küldje amit szeretne, ezt én még loopbacken elkapom, és UDP csomagokként küldöm tovább Wi-Fi-n vagy LTE-n. A túloldalt ugyan ez a felállás (rajzon egyszerűség kedvéérét nem rajzoltam fel, ami a gépemnél a rózsaszín lyuk, az ott a világoskék UDP send/recv doboz). Amit a túloldal visszaküld, azt viszont ne a küldő olvassa, hanem egy teljesen másik TCP socketre legyen továbbítva, az fogadja. Itt elég nagy fejvakarásba kezdtem, nem nagyon sikerült úgy csavarni a dolgot, hogy menjen. Végül elég rajzolgatás után összeállt a dolog. Netcat helyett egy robosztusabb, socat nevű progit használtam, de igazából lehet menne netcattel is. (A socat csak az ötletelés egy fázisába kellett, mert tud unconnected UDP socketet is használni fogadásra).
A gépeken kiadott parancsok (IP-ket és UDP portokat tükrözve nyilván):
socat - tcp-listen:TCP_SEND_PORT | socat - udp-send:TÁVOLI_GÉP_IP:TÁVOLI_GÉP_UDP_PORT | socat - tcp-listen:TCP_RECV_PORT
Sajnos korlátozott eszköztárammal ennyit sikerült összehoznom, ha bárkinek van elegánsabb, rövidebb vagy robosztusabb megoldása, kérem ossza meg velem is, hálás köszönet érte!
- SPYFF blogja
- A hozzászóláshoz be kell jelentkezni
- 980 megtekintés
Hozzászólások
hogy oldod meg a tcp szolgaltatasait (udp folott), pl. elveszett csomag ujrakuldese, csomagok sorba rendezese, flow control, etc? Wifi-n - ha szerencsed van - nem kritikusak ezek a problemak, na de lte eseten sem? Ha azonban nagyobb mennyisegu adatot kell atvinned, akkor ezek bekavarhatnak...
- A hozzászóláshoz be kell jelentkezni
Ezeket szándékosan sehogy, ez volt az egésznek a célja. Az eredeti programnak nem kéne nagy gond legyen, ha kiesik pár csomag, ennek ellenére használ TCP-t. Így csak megnézem milyen lenne UDP-n a dolog.
- A hozzászóláshoz be kell jelentkezni
socatnak meg lehet adni forrast is meg celt is, nem kell kettot egymasba csovezni
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Akárhogy próbálkoztam, azzal nem sikerült. Mindig pont úgy pipeolta össze a forrást és a célt, hogy nem tudtam jó irányba terelni a kommunikációt. Simán el tudom képzelni, hogy úgy is meg lehet oldani, csak mindig logikai bukfencbe futottam a próbálkozásaimmal.
- A hozzászóláshoz be kell jelentkezni