- local_addr=addr.copy();
-}
-
-/**
-Closes the socket. Most operations on the socket will throw an exception after
-this.
-*/
-void Socket::close()
-{
- if(handle==MSP_NET_INVALID_SOCKET_HANDLE)
- return;
-
- set_events(IO::P_NONE);
-
- signal_flush_required.emit();
-#ifdef WIN32
- closesocket(handle);
- CloseHandle(event);
-#else
- ::close(handle);
-#endif
- handle=MSP_NET_INVALID_SOCKET_HANDLE;
- connected=false;
- signal_closed.emit();
-
- delete local_addr;
- local_addr=0;
- delete peer_addr;
- peer_addr=0;