Comments (4)
@gafferongames every client has a unique port number.
Looks like I found the issue, only needed to doubt Windows.. Apparently Windows is emitting ICMP packets about the connection failure - even though we are using UDP here. Here is a source code code snippet for netcode_socket_create
:
#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR, 12)
#if NETCODE_PLATFORM == NETCODE_PLATFORM_WINDOWS
BOOL bNewBehavior = FALSE;
DWORD dwBytesReturned = 0;
WSAIoctl(s->handle, SIO_UDP_CONNRESET, &bNewBehavior, sizeof bNewBehavior, NULL, 0, &dwBytesReturned, NULL, NULL);
#endif
With the fix in place, the issue mentioned above is solved.
Reading material, including the source of the fix:
- https://stackoverflow.com/questions/30749423/is-winsock-error-10054-wsaeconnreset-normal-with-udp-to-from-localhost
- https://stackoverflow.com/questions/34242622/windows-udp-sockets-recvfrom-fails-with-error-10054?rq=1
from yojimbo.
Does each client above have a unique port number, or are you reusing a port number shared with a timing out client?
from yojimbo.
Very interesting
from yojimbo.
A similar fix has been applied to netcode, and will be merged shortly. Closing.
from yojimbo.
Related Issues (20)
- Question - NAT Punch-through HOT 2
- Failed to Create Message Type and Serialize check failed HOT 4
- Client connection refused if it's time is > server time HOT 1
- Message Types vs Data Blocks HOT 1
- Ignoring late packets HOT 1
- Working on improving the vcpkg integration: libsodium and mbedtls versions? HOT 9
- Intended use of client messages HOT 5
- Sending arrays of variable size HOT 4
- Yojimbo linkage HOT 1
- Improve vcpkg usage experience HOT 4
- Large messages can clog ReliableOrderedChannel indefinitely HOT 3
- client.Disconnect() in loopback.cpp example HOT 2
- Building.md instructions not working for m1 mac HOT 3
- matcher docker doesn't seem to build anymore HOT 1
- Sending Large Block Sizes slow HOT 1
- NDA platforms HOT 1
- Problem with #if in yojimbo_reliable_ordered_channel.cpp HOT 2
- [Error] Building yojimbo gmake2 mingw HOT 6
- Packing messages into packets HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yojimbo.