Delphi XE Indy IdTcpServer és Client -nél miért olyan halál lassú egy néhány kb-os Stream átküldése ha LAN-on kívülre megyek?
LAN-on belül néhány sec alatt átmegy egy 28Mb-os fájl, kívülről(Router port átirányítás...) egy 75k fájlnak 8 sec re van szüksége. Ugyanezen fájl másolását a Teamviever 2 sec alatt megoldja.
Az Indy komponenssel van a baj?
Client:
Client.IOHandler.Write(MyStream,0,true);
Server:
cnt := AContext.Connection.IOHandler.ReadLongInt(); AContext.Connection.IOHandler.ReadStream(MsgItem.MsgFile,cnt,false);
Mert az Indy komponensek úgy szaharok, ahogy vannak.
Mindenki saját hálózati rutinokat ír, ha jót akar magának.
"Mindenki saját hálózati rutinokat ír, ha jót akar magának."
Senki nem ír saját hálozatkezelést, ha jót akar magának.
Felhasznál valami könyvtárat, amit profik írtak.
"Tudom szobaprogramozóként ezt nehéz elképzelni, de az ipar így működik."
Hahaha ^64.
Nem igazán tudom a fent említett link alatt lévő információt beilleszteni a projectbe. Néhány szóban a projectről, hogy tisztább legyen a kép :
Több modulból álló rendszer modulok közti kapcsolatát próbálom megvalósítani. A modulok egyes részeit c++-ban írják, néhány részét pedig delphiben. A rendszer maga dll-be van beágyazva. A modulok számára akommunikáció "fekete doboz" only dll függvényeket hívnak(sendMsg, SendFile...stb). A bejövő üzenet Alertet Event segítségével valósítottam meg. A dll-ben vannnak szerverek, kliensek szálak, minden ami az üzenetközvetítéséhez szükséges. És remekül működik , CSAK 1 probléma van vele hogy ha kimegyek LAN on kívülre az üzenetek hamar célba érnek, viszont a file küldés nagyon lassú. próbáltam régebben TTcpClient/TTcpServer-el, TServerSocket/TClientSocket-tel- úgy hogy átvettem egy saját, a szerver által használt szálból származtatott, általam kibővített, Szálobjektum- al megoldani az a része eléggé régimódi és az eventekkel is baj volt. Most a Az Indy eddig jól szuperált. EDDIG. Az eventek remekül működnek, elég az execute-ot megadni neki, és minden modul külön szál kontextusban csinálja a saját execut-ját. Csak ez a netes probléma ne lenne vele. Valahogyan ennek a megoldására törekednék. Nem akarom kidobni amit eddig hetek alatt készítettem.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!