Вопрос по SMTP в Delphy...
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Вопрос по SMTP в Delphy... - 2005-12-22 13:40:51
|
|
|
De}{is
Сообщений: 137
Оценки: 0
Присоединился: 2005-11-22 11:21:42
|
Я пишу почтовый клиент и в связи с этим у меня возникло два вопроса: 1. когда программа пытается законнектиться на сервак, то, если комп не подключен к сети, то сначала вылазит противное окно подключения удаленного доступа, а в случае отказа, программа с матами вылетает. Как от этого избавиться, как перезватить эту и другие подобные ошибки. 2. Есть ли какие-либо функции, с помощю которых можно определить, подключен ли комп в даннй момент к сети.
Сорри за детские вопросы, но помогите, если можете…
|
|
|
Вопрос по SMTP в Delphy... - 2005-12-28 15:43:45
|
|
|
A_Tolstoy
Сообщений: 71
Оценки: 0
Присоединился: 2005-11-29 19:22:37
|
Вот тебе Дельфинская функция для пинга (нужно использовать TIdIcmpClient со страницы IndyClients)
function TConnectionToGlobal.TestNetConnect(const Host: String): Boolean; begin Result := False; fGuardwindоw.IdIcmpClient.Host:= Host; try fGuardwindоw.IdIcmpClient.Ping(); //Строка ниже - для тестирования //ShowMessageFmt('Host: %s (%s)'#10'TTL: %d'#10'TripTime: %d', [fGuardwindоw.IdIcmpClient.Host, fGuardwindоw.IdIcmpClient.ReplyStatus.FromIpAddress, fGuardwindоw.IdIcmpClient.ReplyStatus.TimeToLive, fGuardwindоw.IdIcmpClient.ReplyStatus.MsRoundTripTime]); Result := (CompareStr(fGuardwindоw.IdIcmpClient.ReplyStatus.FromIpAddress, '127.0.0.1') <> 0) and (fGuardwindоw.IdIcmpClient.ReplyStatus.TimeToLive > 0); except // ничего не пишем, а просто проглатываем эксепшн fGuardwindоw.edShtrihKod.Clear; if fGuardwindоw.edShtrihKod.CanFocus then fGuardwindоw.edShtrihKod.SetFocus; Exit; end;
end;
|
|
|
Вопрос по SMTP в Delphy... - 2005-12-29 14:49:05
|
|
|
Kill_em_all
Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
|
2>>A_Tolstoy
А если icmp траффик запрещен?
Вот этот способ я увидел на одном форуме(правда на Си) DWORD dwFlags = 0;<BR>BOOL bResult = IsNetworkAlive( &dwFlags );<BR>if ( dwFlags == NETWORK_ALIVE_WAN )<BR>{<BR><BR> //есть подключение<BR>}else{ ExitProcess(0);}
Это WinApi функция(IsNetworkAlive), поэтому ты и Делфе ее сможешь заюзать[sm=go139.gif]
|
|
|
Вопрос по SMTP в Delphy... - 2005-12-30 23:52:46
|
|
|
mxxm
Сообщений: 253
Оценки: 0
Присоединился: 2004-03-13 08:39:42
|
To: A_Tolstoy: да млин, ты не понимаешь: аффтар же сидит на мопеде. В случае попытки PING'а, виндовс попытается дозвониться до провайдера. Может быть айпишник поможет - если он локальный или null, значит соединения нет. Если есть адрес - значит есть соединение.
Ой, сори, ведь дан правильный ответ, как то я не поглядел…
|
|
|
|
|