How to build multi-connection / multi-stream non-blocking QUIC server #29036
-
|
I am writing a QUIC server based on OpenSSL 3.6 and studied the demo application I want to use an application-wide epoll / select event loop and successfully added the listener to it. I believe the demo app circumvents this problem by only serving one client at a time so it does not need a system-wide event loop that dispatches events to the corresponding connection handlers. But this is not an option for a real world server app. My question is: |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
|
you want to use SSL_poll() for QUIC. As you've noted, multiple QUIC connections, if accepted from the same listener, will share an underlying UDP socket, so its not possible to tell from the epoll return which client has pending events. SSL_poll() manages this by testing each QUIC connections read and write buffers for available data. You can see an example of how this is done, its available in ./demos/quic/poll-server/ |
Beta Was this translation helpful? Give feedback.
you want to use SSL_poll() for QUIC. As you've noted, multiple QUIC connections, if accepted from the same listener, will share an underlying UDP socket, so its not possible to tell from the epoll return which client has pending events. SSL_poll() manages this by testing each QUIC connections read and write buffers for available data. You can see an example of how this is done, its available in ./demos/quic/poll-server/