Stack Overflow Asked by Danahi on October 22, 2020
I am using Lidgren in Monogame.
There is a possibility that a player would want to host a game, then exits the lobby, and wants to host again. However, when I do this in my code, the following exception is raised: System.Net.Sockets.SocketException: ‘Only one usage of each socket address (protocol/network address/port) is normally permitted’
Relevant code:
// initializing the server
NetPeerConfiguration _config = new NetPeerConfiguration("some app id");
// code to enable certain messages.
_server = new NetServer(_config);
_server.Start();
// cleaning up the server instance
_server.Shutdown("server shutdown");
_server = null;
The code crashes at _server.Start()
with binding the socket.(m_socket.Bind()
).
How can I clean the server/socket up so that I can create a new instance of the server a second time around?
The cause of this is an improper shutdown of the previous server's instance meaning the port is still in use by that instance. Seems to have been a bug, the internal cleanup didn't work properly https://github.com/lidgren/lidgren-network-gen3/issues/94 https://github.com/lidgren/lidgren-network-gen3/issues/94#issuecomment-369561026 however it was fixed so be sure to have the latest version of lidgren-network https://github.com/RevoluPowered/lidgren-network/tree/feature/socket-overhaul
you can use _server.Socket.Close();
just to be sure the socket closes before starting another server or instance.
Answered by Thompson sparta on October 22, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP