В последнее время я играю с ходу и пытаюсь сделать какой-то сервер, который отвечает клиентам на tcp-подключении.Как я могу прерывать выполнение goroutine (* TCPListener) Accept?
Мой вопрос, как я чисто выключит сервер и прервать идти-подпрограмму, которая в настоящее время «заблокирован» в следующем вызове
Func (* TcpListener) Accept?
Согласно documentation of Accept
Accept реализует метод Accept в интерфейсе приемника; он ждет следующего вызова и возвращает общий разъем.
Ошибки также очень задокументированы.
Хорошо, но тогда как я определить, что акцепт не удалось из-за моих близких, не создавая какой-то конкретный код приложения? Согласно документации http://golang.org/pkg/net/#Error, которую нелегко понять. Ок, может быть, не имеет значения, чем много, но будет больше инкапсулированного потока, если бы я мог знать, что сокет закрыт. – mhstnsc
Принять возвращает два значения: Conn и ошибка. Если ошибка не равна нулю, то что-то не получилось. – thwd
Это я знаю. Но откуда вы знаете, что принятие не подвело по какой-то другой причине, и мне просто нужно повторить попытку? Документация не говорит, что она потерпит неудачу, только если я закрою сокет. Также посмотрите на документацию о принятии posix. http://linux.die.net/man/2/accept. Посмотрите, сколько там ошибок. – mhstnsc