Что происходит с сокетами, когда я отключаю сетевой кабель?

Просто используйте Replace, чтобы удалить адрес из .To из вашего списка в .CC

.To = Worksheets("MyData").Range("R2").Value
.CC = Replace("yyy@gmail.com; zzz@gmail.com; aaa@gmail.com", .To, vbNullString)
7
задан Glorfindel 25 February 2019 в 17:02
поделиться

3 ответа

Какой адрес Вы используете для "Довода "против" A"? Если Вы используете адрес, который связывается с адаптером внешней сети, даже при том, что Вы говорите с той же машиной, то то, что Вы описываете, могло произойти.

То, что можно сделать, использовать адрес localhost (127.0.0.1) для "Довода "против"", который должен быть абсолютно независим от того, что происходит во внешней сети.

5
ответ дан 6 December 2019 в 21:21
поделиться

На некоторых платформах (окна), вытягивающие сетевой кабель, говорит, что сетевой стек к activly делает недействительным открытые сокетные соединения, связанные с интерфейсом.

В этом сценарии, вытягивающем сетевой кабель, на самом деле плохой тест, потому что он предоставляет позитивные отклики Вашему заявлению, которое он не может получить в реальной ситуации.

Одна распространенная ошибка для людей сделать, когда запись клиент-серверных приложений к не incporporate активный прикладной уровень или по крайней мере включает сообщения проверки активности на транспортном уровне. Приложение recv () данные луга могут иначе навсегда не обращать внимания на любое состояние отказа до него, запись () s и запись перестали работать из-за тайм-аута транспортного уровня.

5
ответ дан 6 December 2019 в 21:21
поделиться

Получение по запросу сетевого кабеля имеет различные эффекты в зависимости от ОС, которую Вы выполняете. Как другой упомянутый плакат, Windows обнаруживает его и делает недействительным любые существующие соединения. Ваше приложение должно добраться, соединение закрыло сообщение в этом случае.

Мой сервер Linux, с другой стороны, имеет дело с ним вполне корректно. После расширенного (30-40 секунд) de-кабельные-соединения на днях соединение SSH с моего ноутбука на сервер было все еще счастливо доступным и быстро реагирующим.

Пока кабель не отключается дольше, чем тайм-ауты TCP, стек должен смочь буферизовать пакеты и ретранслировать их как можно скорее. TCP разработан для этого. Если Вы не будете использовать TCP затем, то пакеты упадут из дыры Ethernet и испарятся в атмосферу.

@einstein: при использовании выбора () или производные, он платит, чтобы никогда выбрать с ПУСТЫМ тайм-аутом. Всегда имейте разумный тайм-аут и проверьте состояние сокета, если оно истекает.

2
ответ дан 6 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: