При использовании SFML TcpListener
в основном потоке, как я могу немедленно остановить функцию TcpListener::accept()
? Например, если бы я хотел получить SIGINT
и чистить вещи. Для этого мне нужно было бы вернуть функцию TcpListener::accept()
Disconnected или Error.Мгновенно остановить SFML TcpListener
ответ
спасибо Sean Cline за то, что вы указали non-blocking mode и selectors.
Для справки, функции SFML/Networking (я не уверен в других компонентах) блокируются по умолчанию, а это означает, что они не вернутся, пока они не достигнут своей цели (в моем случае, принимая TCP-соединение) , Используя non-blocking mode, функция немедленно вернется, возвращая ее статус. Для TcpListener::accept()
он вернет sf::Socket::Status::Done
, если было принято соединение, и оно успешно завершило задачу. В противном случае он может вернуться sf::Socket::Status::Disconnected
, или sf::Socket::Status::NotReady
.
Что касается selectors, они позволяют управлять несколькими сокетами в одном потоке и особенно полезны, когда вы не знаете, кто будет отправлять данные в первую очередь.
- 1. Как вежливо остановить TcpListener?
- 2. Как остановить поиск uisearch мгновенно?
- 3. Причины, по которым SFML TCPListener не сможет привязываться к порту?
- 4. Как мгновенно остановить Toast на Android
- 5. Ограничение количества и времени соединений TcpListener. Как правильно закрыть \ остановить TcpListener и TcpClient?
- 6. Остановка TcpListener после вызова BeginAcceptTcpClient
- 7. SFML TCP сокет не ждать, пока данные
- 8. SFML Platform Collision
- 9. Использование AS3WavSound для воспроизведения WAV - невозможно остановить мгновенно
- 10. Ошибка SFML Threads
- 11. SFML 2.1 Networking
- 12. SSL на TCPListener
- 13. Объекты, пропускающие C# TCPListener
- 14. TcpListener отсутствует System.Net.Sockets имен
- 15. C# TCPListener Issue
- 16. TcpListener сервер - обрабатывать данные
- 17. TcpListener не принимает клиента
- 18. C# TcpListener streamreader.readline застрял
- 19. TcpClient/TcpListener filename
- 20. TcpListener не подтверждает подключения
- 21. TcpListener Proxy HttpWeb
- 22. многопоточность с использованием tcplistener
- 23. Странное поведение: TcpListener
- 24. C# TcpListener внешний IP
- 25. ждет клиента в TcpListener
- 26. Закрытие соединения TCPlistener/клиента
- 27. Does Thread.Sleep деактивирует TCPListener?
- 28. TcpListener vs SocketAsyncEventArgs
- 29. TcpListener Как подключить клиентов?
- 30. Отправить объекты через tcplistener
Можете ли вы закрыть розетку из-под нее? – user4581301
@ user4581301 как бы я это сделал? –
'TcpListener :: close'. [Документация] (http://www.sfml-dev.org/documentation/2.0/classsf_1_1TcpListener.php#ae2c83ce5a64d50b68180c46bef0a7346) говорит: «Эта функция изящно останавливает слушателя. Если сокет не прослушивается, эта функция не действует». – user4581301