how to tell when an underlying socket is closed, or how to force it closed #1736
timprepscius
started this conversation in
General
Replies: 1 comment 3 replies
-
I suggest you take a look at https://github.com/microsoft/msquic/tree/main/src/tools/ip. This does pretty much exactly what you want I think. I'm also had some serious thought of writing up an official QUIC extension to more fundamentally support this directly in the QUIC protocol. I'd be happy to discuss this topic more on Discord. A while back, I did start writing up https://github.com/nibanks/quic-new-path which would use something like this to then allow you to explicitly change paths, which can be used for things like punching through NATs and going around VPN bottlenecks. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
So I need to discover public ips & ports.
I would like to:
a. create a quic connection using a specific socket-port X to a server
b. server sends client, "this is your public IP and port"
c. client closes quic connection
d. close underlying socket completely / or detect when underlying socket is closed
e. create a new quic listener on the same port X
I'm thinking about FIN and FIN_WAIT.
If I:
case QUIC_CONNECTION_EVENT_SHUTDOWN_COMPLETE:
quic->ConnectionClose(Connection);
Is the socket closed at this point?
Can I close the socket and not wait for FIN/FIN_WAIT?
--
How do I know when the underlying socket has closed?
Beta Was this translation helpful? Give feedback.
All reactions