Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать файл(локально) по DNS-имени компа 
V
    Опции темы
Dobermann
Дата 20.7.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Сделал через TServerSocket и TClientSocket, но там только через ip адрес...кто-нибудь знает как это делается по dns имени компа???
PM   Вверх
niteo
Дата 20.7.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



Используй Indy smile
или вот http://rouse.front.ru/domaininfo.zip 
Все есть в DRKB

Это сообщение отредактировал(а) niteo - 20.7.2009, 15:40
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
Dobermann
Дата 20.7.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Блин, я тут не новичек! smile  Не надо меня ссылками закидывать! smile  
Можно конкретный пример отправки файла на конкретное dns-имя компа! smile 
PM   Вверх
niteo
  Дата 20.7.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



Для unix? smile

Это для Виндовз

Код


function GetIPFromName(DNS: string): string;
const
  ERR_HOST = 'Can not get host information.';
  RES_UNKNOWN = 'Unknown';
  ERR_WSA = 'Can not initialize WSA.';
  WSA_Type = $101; //$202;
var
  WSA : TWSAData;
  Host : PHostEnt;
  Err : Integer;
begin
  Result := RES_UNKNOWN;
  Err := WSAStartup(WSA_Type, WSA);
  if Err <> 0 then
  begin
    MessageDlg(ERR_WSA, mtError, [mbOK], 0);
    Exit;
  end;
  Host := GetHostByName(PChar(DNS));
  if Assigned(Host.h_addr_list) then
    Result := inet_ntoa(PInAddr(Host.h_addr_list^)^)
  else
    MessageDlg(ERR_HOST, mtError, [mbOK], 0);
  WSACleanup;
end;




а так сматри справку по gethostbyname. В Линуксе тож есть


Это сообщение отредактировал(а) niteo - 20.7.2009, 19:58
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
Dobermann
Дата 21.7.2009, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Мда...вот и все:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  WSAData: TWSAData;
  host: PHostEnt;
begin
 WSAStartup(WINSOCK_VERSION, WSAData);
 host:=GetHostByName(PChar(Edit1.Text));
 Label1.Caption:=inet_ntoa(PInAddr(host.h_addr_list^)^);
 WSACleanup;
end;

PM   Вверх
Dobermann
Дата 21.7.2009, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Код

procedure TForm1.Button1Click(Sender: TObject);
var
  WSAData: TWSAData;
  host: PHostEnt;
begin
 WSAStartup(WINSOCK_VERSION, WSAData);

 
 try
   host:=GetHostByName(PChar(Edit1.Text));
 except
  on e:EAccessViolation do
    label1.caption:=e.message;
  end;


 Label1.Caption:=inet_ntoa(PInAddr(host.h_addr_list^)^);
 WSACleanup;
end;

Как правильно задать обработку искл.ситуации при данной ошибке???
У меня при такой обработке прога виснет и выдает сообщение об ошибке! Как это обработать?????

Добавлено @ 00:38
т.е. как правильно вывести сообщение об ошибке и продолжить работу проги???

Это сообщение отредактировал(а) Dobermann - 21.7.2009, 00:39
PM   Вверх
niteo
Дата 21.7.2009, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



Ниже код покажет тебе ошибку. А так в блоке try..except все делай.

Код

var
  MsgBuf: PChar;
  errno : integer;
  ...
begin
  ... 
  errno := GetLastError();
  if errno <> 0 then
  begin
    MsgBuf := GetMemory(256);
    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, errno,((WORD(SUBLANG_DEFAULT) shl 10) or WORD(LANG_NEUTRAL)), 
                  MsgBuf, 256, nil);
    MessageBox(0, MsgBuf, 'GetLastError', MB_OK + MB_ICONINFORMATION + MB_TASKMODAL + MB_SERVICE_NOTIFICATION);
    FreeMemory(MsgBuf);
  end;
end;


Это сообщение отредактировал(а) niteo - 21.7.2009, 07:12
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
Dobermann
Дата 21.7.2009, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Так мне нужно ее обработать чтобы она не вылетала!
Код

 try
   host:=GetHostByName(PChar(Edit1.Text));  <--- тут появляется ошибка EAccessViolation, если комп не найден
 except
  on e:EAccessViolation do
    label1.caption:='Комп с таким именем не найден!';
  end;

Мне нужно просто чтобы ничего не вылетало, а просто изменить значение label1.caption
PM   Вверх
niteo
Дата 21.7.2009, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



1. Сматри, тот ли тип exception ловишь.
2. Если запускаешь прогу из под Delphi, отключи в ней(в Delphi) реакцию на exception.
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
Dobermann
Дата 21.7.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Окей, спасибо!

Добавлено через 58 секунд
по этому вопросу уже отдельная тема создана...
PM   Вверх
MetalFan
Дата 21.7.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Dobermann @  21.7.2009,  07:41 Найти цитируемый пост)
 on e:EAccessViolation do
    label1.caption:='Комп с таким именем не найден!';
  end;

 smile  smile  smile 
Хорошая логика... если AV, то такого компа нет. компа то может и нет, но такое исключение выдаваться не должно ни при каких обстоятельствах)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Dobermann
Дата 21.7.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



да понял уже...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1822 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.