TCP-Socket - (Verständnis-)Frage



  • die option SO_REUSEADDR wird nur benötigt wenn du auf einem Port in listen-modus gehen willst, der noch fehlerhafterweise belegt ist... zB wenn dein Programm abgestützt ist ohne den Port wieder freizugeben.

    mfg blan



  • Oh!

    Und wenn ich nun, wie oben angedeutet, über einen Socket (und TCP) an mehrere Hosts in kurzer Folge Daten senden möchte, geht das so, oder wie gehe ich das an? kann ich jedesmal einen Connect auf den selben Descriptor machen, oder ist da was zu beachten,

    lg
    Mitsch



  • sendest du mit TCP oder UDP?

    und sind das jeweils client / server oder wirklich ein client und server in einem wie im code?

    mfg blan



  • Wahlweise TCP oder UDP. UDP ist leichter, da mache ich ein verbindungsloses sendto(), nur bei TCP hänge ich.
    Das Prinzip dahinter ist ein Handshake, in etwa so:

    localhost       Addresse[i]
    |(1) INVITE         |
    |----------------- >|
    |(2) 200            |
    |< -----------------|
    

    lg
    Mitsch



  • ich verstehs net ganz - dein code schickt und empfängt 100.000 nachrichten - was solln des bringen..?

    naja fürs einfache hintereinader connecten kannst einfach sowas machen (TCP):

    if((connect(...) != SOCKET_ERROR))
    {
      send(...)
    }
    close(socket);
    

    und den code halt immer wiederholen - wobei sowas egtl absoluter schwachsinn ist, wozu bracuhst du sowas. bzw was willst damit machen?

    mfg blan



  • Ist ein Brute-Force Testtool, welches in kurzer Zeit sehr viele VoIP-Verbindungen aufbauen und abarbeiten muß (das bestehende, das ich eben erweitern muß, habe ich schon auf 5000 Anrufe/Sec gebracht).
    Die Frage auf Dein Snipplet: Es genügt also, ein Connect pro Verbindung zu machen, und nicht auch danach jedesmal zu closen, sondern erst ganz zum Schluß?



  • öhm? dann bleibt die verbindung halt offen bis es zunem timeout kommt - aber das willst du ja nicht oder?

    mfg blan



  • Sorry, habe mich verschaut, ich las eine Schleifendefinition, sitze heute schon viel zu lange vor dem Schmarren ...

    Also, ich rekapituliere: Bei TCP muß ich, wenn ich an verschiedene IP-Adressen Requests schicken möchte, immmer

    connect(socket,host,...)
    send(...)
    close(socket)
    

    machen?

    Mitsch

    PS: das Tool heisst SIPp, sipp.sourceforge.net



  • Mitsch schrieb:

    Also, ich rekapituliere: Bei TCP muß ich, wenn ich an verschiedene IP-Adressen Requests schicken möchte, immmer

    connect(socket,host,...)
    send(...)
    close(socket)
    

    machen?

    ja sodass die verbindung aufgebaut wird, daten gesendet werden und dann zum schluss die verbindung wieder geschlossen wird.

    mfg blan



  • OK, nun ist das Problem zumindest ein wenig klarer 🙂

    Merci


Anmelden zum Antworten