C/Linux: Netzwerkbuffer löschen



  • hallo zusammen.

    Da ich aus Zeitgründen die Receivefunktion nicht benötige, aber trotzdem ständig Nachrichten hereinkommen, möchte ich gerne den Buffer löschen (flushen?)

    Wie mache ich dies?

    Vielen Dank

    Cu Hurra



  • Lern TCP und benutze shutdown()



  • Sonst noch Vorschläge außer Tcp zu lernen?



  • LernTCP schrieb:

    Lern TCP und benutze shutdown()

    aber wie willst du den Socket wieder auf lesen stellen, wenn du shutdown erst drauf angewandt hast?



  • Hallo!

    Ich glaube nicht, dass das was du vorhast möglich ist.

    Der Sender der Daten erwartet ja, wie bei TCP nun mal üblich, die Bestätigung dass du den Mist auch bekommen hast.
    Was du versuchen kannst ist diese Ack Pakete mit Rawsockets zu faken, aber empfangen musst du trotzdem irgendwie.

    Langer Rede kurzer Sinn: Ich glaube nicht dass es möglich ist.



  • aber wie willst du den Socket wieder auf lesen stellen, wenn du shutdown erst drauf angewandt hast?

    Entweder er will daten Empfangen, dann müssen die Daten gebuffered werden oder er interessiert sich nicht für sie.



  • es geht ihm ja darum, den Kernel internen Buffer zu flushen. Der Kernel empfängt dann natürlich weiterhin



  • Ich brauche den Inhalt der Daten nicht,

    nungut, da das wohl nicht so einfach is, hier mal der Hintergrund:

    Ich steuere ein LCd am Lpt an. Dies mache ich per LCDd (von lcdproc), ich connecte zum LCDd und schicke ihm dann meine Befehle, auf jeden Befehl gibt mir aber LCDd ein "success" zurück.

    Mein Code schaut ungefähr so aus:

    strcpy(buffer,"screen_add blabla string");
    send(sockettolcdd,buffer,strlen(buffer),0);
    recv(sockettolcdd,buffer,100,0);
    

    Jetzt hab ich bemerkt, dass er ohne die Receivefunktion viel schneller arbeitet. Mein Problem is nur, dass ich ganz ohne revceibe nicht auskomme, irgendwie bekomme ich dann immer Segmention fault und das Dsipaly zeigt Müll an.

    Vielleicht weiß jemand Hilfe

    Vielene Dank

    Cu hurra


Anmelden zum Antworten