Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. One last IOCP question :)

One last IOCP question :)

Scheduled Pinned Locked Moved C / C++ / MFC
helpdesignsysadmintutorialquestion
17 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Mark Salsbery

    Cancel Overlapped Socket Op Update: From a Larry Osterman (Microsoft engineer) blog, apparently you can use CancelIo(), casting your socket handle to a "HANDLE". Give it a try - worst that can happen is it fails :) Mark

    P Offline
    P Offline
    Polity4h
    wrote on last edited by
    #8

    CancelIo doesnt work, the thing is that it needs to be ran from the same thread where Overlapped operations were posted. I could however close the socket and open it again, but what are the drawbacks of this? this means that i need to close and open like 20 sockets per second in the future. looks really hard to me, but i cant really figure out what might happen when i do this.

    M 1 Reply Last reply
    0
    • P Polity4h

      CancelIo doesnt work, the thing is that it needs to be ran from the same thread where Overlapped operations were posted. I could however close the socket and open it again, but what are the drawbacks of this? this means that i need to close and open like 20 sockets per second in the future. looks really hard to me, but i cant really figure out what might happen when i do this.

      M Offline
      M Offline
      Mark Salsbery
      wrote on last edited by
      #9

      Polity4h wrote:

      CancelIo doesnt work, the thing is that it needs to be ran from the same thread where Overlapped operations were posted.

      Yeah I thought about that since you are posting overlapped ops from your worker thread(s) :) 20 sockets per second? How long is the time you are willing to wait before the remote node is considered inactive??

      P 1 Reply Last reply
      0
      • M Mark Salsbery

        Polity4h wrote:

        CancelIo doesnt work, the thing is that it needs to be ran from the same thread where Overlapped operations were posted.

        Yeah I thought about that since you are posting overlapped ops from your worker thread(s) :) 20 sockets per second? How long is the time you are willing to wait before the remote node is considered inactive??

        P Offline
        P Offline
        Polity4h
        wrote on last edited by
        #10

        alright, i might have thought a bid to far in the future were i got myself a mainframe ;) << -_- whatever, anyways, lets say 2 sockets needs to be created per second. wont this kill my system after doing this a long time ( my app needs to run constantly for, count them up a few years ) << thats the perfect vision ofcourse.

        M 1 Reply Last reply
        0
        • P Polity4h

          alright, i might have thought a bid to far in the future were i got myself a mainframe ;) << -_- whatever, anyways, lets say 2 sockets needs to be created per second. wont this kill my system after doing this a long time ( my app needs to run constantly for, count them up a few years ) << thats the perfect vision ofcourse.

          M Offline
          M Offline
          Mark Salsbery
          wrote on last edited by
          #11

          I'm not sure what you are trying to do. Why do you need to keep creating sockets but never destroy them? Surely you'll run out of sockets if you do that :)

          P 1 Reply Last reply
          0
          • M Mark Salsbery

            I'm not sure what you are trying to do. Why do you need to keep creating sockets but never destroy them? Surely you'll run out of sockets if you do that :)

            P Offline
            P Offline
            Polity4h
            wrote on last edited by
            #12

            ...I could however close the socket and open it again, but what are the drawbacks of this? this means that i need to close and open like 20 sockets per second in the future... hehe, anyways your saying that your server wont suffer to hard when creating AND DESTROYING lets say 2 sockets per second?

            M 2 Replies Last reply
            0
            • P Polity4h

              ...I could however close the socket and open it again, but what are the drawbacks of this? this means that i need to close and open like 20 sockets per second in the future... hehe, anyways your saying that your server wont suffer to hard when creating AND DESTROYING lets say 2 sockets per second?

              M Offline
              M Offline
              Mark Salsbery
              wrote on last edited by
              #13

              No. As long as that's really what your app needs to do. :) Think about how many TCP sockets a busy web (HTTP) server must open and close per second. 20 per second is nothing :) Mark

              P 1 Reply Last reply
              0
              • M Mark Salsbery

                No. As long as that's really what your app needs to do. :) Think about how many TCP sockets a busy web (HTTP) server must open and close per second. 20 per second is nothing :) Mark

                P Offline
                P Offline
                Polity4h
                wrote on last edited by
                #14

                ok :) now i know enough. thanks for everything mark, you've helped me alot

                1 Reply Last reply
                0
                • P Polity4h

                  ...I could however close the socket and open it again, but what are the drawbacks of this? this means that i need to close and open like 20 sockets per second in the future... hehe, anyways your saying that your server wont suffer to hard when creating AND DESTROYING lets say 2 sockets per second?

                  M Offline
                  M Offline
                  Mark Salsbery
                  wrote on last edited by
                  #15

                  *EDIT* Having a pool of sockets could improve performance - that way only ConnectEx/DisconnectEx needs to be called on a socket instead of recreating/destoying the entire socket every time. Mark

                  P 1 Reply Last reply
                  0
                  • M Mark Salsbery

                    *EDIT* Having a pool of sockets could improve performance - that way only ConnectEx/DisconnectEx needs to be called on a socket instead of recreating/destoying the entire socket every time. Mark

                    P Offline
                    P Offline
                    Polity4h
                    wrote on last edited by
                    #16

                    src=msdn:The Windows Sockets ConnectEx function establishes a connection to a specified socket, and optionally sends data (called connect data) once the connection is established. The ConnectEx function is only supported on connection-oriented sockets. remember, i'm forced to use connectionless protocols :) thanks anyway

                    M 1 Reply Last reply
                    0
                    • P Polity4h

                      src=msdn:The Windows Sockets ConnectEx function establishes a connection to a specified socket, and optionally sends data (called connect data) once the connection is established. The ConnectEx function is only supported on connection-oriented sockets. remember, i'm forced to use connectionless protocols :) thanks anyway

                      M Offline
                      M Offline
                      Mark Salsbery
                      wrote on last edited by
                      #17

                      Gotcha man :) I was just extending my comment about TCP sockets on an HTTP server :)

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups