.NET Remoting datenübertragung beschleunigen?



  • Hallo Leute,

    ich hab Testweise ne Server/Client anwendung geschrieben... Das Remoting Object stellt 2 funktionen bereit, eine sende (N) bytes , und die andere gibt (N) bytes zurück.

    Das ganze habe ich über eine Modem V.90 56 KB/s verbindung getestet, umd zu schaun wie schnell datenblöcke übertragen werden.

    Naja nun hab ich bemerkt das datenblöcke von 8 Bytes bis 1KB gleichschnell übertragen werden?? ca. 550ms wie kann das sein..?

    Ich dachte wenn ich meine remote funktion des server interface remoteobjekt einen 10byte großen datenblock (byte[] ddd) übertrage, müsste es schnell gehen?

    Liegt es an der interen serialisierung? wie könnte ichdie sache beschleunigen? weil ich weis ja nicht wirklich wieviel overhead durch das remoting entsteht!



  • Liegt vermutlich am Socket selbst. Der wartet ja bis der Buffer voll ist und sendet dann.



  • ja hab auch was von MTU gelesen.. kann ich da was machen? Ich denke erwarte bei neuen daten immer noch paar ns/ms ob noch datnen kommen und sendet dann erst oder?

    Was könnte ich da tun.. selbst das Format von SOAP auf Binaäry hat kaum was gebracht...



  • Du könntest die MTU deinen Daten anpassen.
    Lass es lieber. Ist besser.



  • .Net Remoting ist eigendlich nur geeignet um innerhalb eines LAN verteilte Applikationen zu bauen. Schon bei VPN Verbindungen übers INternet kannst Du remoting vergessen, bei einem 56k Modem würde ich gar nciht erst damit anfangen.

    Beim Remoting passiert eben viel mehr als nur Datenübertragung. Wie gesagt, da geht es in erster Linie um verteilte Applikationen.

    Zur einfachen Datenübertragung sind reine Sockets besser geeignet.



  • das Problem ist, das ich daten über HTTP Port 80 übertragen will, dazu brauch ich ja webservices nehm ich an. Oder kann ich das auch über sockets machen, das basiert doch rein über TCP/IP oder irre ich mich? HTTP baut ja auf TCP/IP auf, gibt es möglichkeiten daten via http durch sockets zu übertragen?

    Ich bin auf HttpListner WebClient gestossen, vll. hilft mir das weiter.

    Ich will nun Daten vom Server lesen, wenn er mir neue hat. d.h. ich muss pollen. Das Problem ist hierbei, das ich bei jedem pollen zyklus die funktion "listener.GetContext()" aufrufen muss, was zeit kosten würde.. kann man keine stehende verbindung aufbauen, damit ich daten hin und her streamen kann?


Anmelden zum Antworten