powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ERROR и ClientSocket.SendText
14 сообщений из 14, страница 1 из 1
ERROR и ClientSocket.SendText
    #32173352
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всезнающий ALL!
Как подавить сообщение об ошибке возникающее при отправке сообщения через ClientSocket, если ХОСТ не найден? TRY ... EXCEPT не помогают, ERRORCODE :=0 тоже... СПАСАЙТЕ ПЛИИИЗ! :-)
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173369
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, а нельзя НЕОТПРАВЛЯТЬ сообщение если хост не найден?
Честно говоря, с сокетными компонентами никогда не работал, все сам писал. И потому с такой проблемой не сталкивался. Подумай вот над чем "Будеш ли ты работать с инетом, сокетами и т.п. и в жальнейшем, или это твой единственный проект в этой области". Если будешь, изучай winsock. Это не сложно, и даст тебе максимум возможностей.
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173370
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
На поиск хоста уходит время, а если хостов (в моём случае имён компьютеров)много? А если их вообще неизвестное кол-во? Что, сначала получить список всех? Да на это пол минуты уйдёт... :((( А сообщение надо послать сразу же....
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173399
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В одну руку пизду и титьку.
Мне кажется ты отправляеш сообщения через TCP.
Если да, то ты коннектишся к хосту, затем отправляеш сообщение, затем(возможно) читаеш ответ, по необходимости повторяеш операци. записи/чтения, и закрываеш соединение.
Первый пункт (коннект) у тебя не проходит. Правильно? так зачем посылать сообщение, если коннект к хосту не прошел?
>при отправке сообщения
Это значи что ты пытаешся отправить
>если ХОСТ не найден
а коннекта небыло.
Зачем?
>На поиск хоста уходит время,
оно и так уходит, никуда не денешся. посылай udp сообщения если ситуация позволяет. ты думал над тем что я тебе сказал? (про "Будеш ли ты работать...")
подумай, знания, которые ты получиш изучая winsock и/или berkley socket, очень сильно помогут в будущем(если конечно америка россию не куйнет накуй)
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173401
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
Да, я был неточен... сорри. Сообщение я действительно не посылаю, если хост не найден, я просто пытаюсь открыть соединение с хостом, и в случае, если хоста нет (а их имена я беру из заранее подготовленного списка) вываливается сообщение об ошибке... которое мне и надо задавить. Или меня спос бы вариант типа послать широковещательное сообщение на такой-то порт всем, кто "слушает" этот порт... ответа от "слушателей" я не жду.
А с winsock-ом я скорее всего делов иметь не буду, учить его - дело полезное, но у меня по работе запарка... :(( А форум для того и создан, что б люди знаниями делились ;-))
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173407
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хочеш, я тебе функцию напишу, которая коннектится на указанный хост на указанный порт и сразу закрывает соединение и возвращает труе если удалось или фалсе если нет?
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173409
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
Дык! Конечно хочу! :-)))
Токма чтоб функция сообщение об ошибке не вызывала, ежели хост не найден...
Спасибки заранее! :))
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173413
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
function trythishost(host:string;p:integer):boolean;
var wsd:TWSAData;
sa:TSockaddrin;
r_h:PHostEnt;
rh:THostEnt;
al:PChar;
i:integer;
port:word;
s:integer;
begin
     result:=false;
     WSAstartup($ 101 ,wsd);
     s:=socket(af_inet,sock_stream, 0 );
     if s=- 1  then
          exit;
     r_h:=gethostbyname(pchar(host));
     if r_h<>nil then rh:=r_h^ else
     begin
          closesocket(s);
          exit;
     end;
     al:=rh.h_addr_list^;
     zeromemory(@sa,sizeof(sa));
     copymemory(@sa.sin_addr,al,rh.h_length);
     result:=true;
     sa.sin_family:=af_inet;
     port:=(p shr  8 )+(p mod  256 )shl  8 ;{}
     i:=sizeof(sa);
     sa.sin_port:=port;
     if connect(s,sa,i)<> 0  then
     begin
          result:=false;
          closesocket(s);
     end;
end;

не забудь в uses добавить winsock
первая строчка функции WSASturtUp не обязательна если твое приложение само уже сделало это. Так как ты, видимо, не знаеш, вызывалось в твоей программе всастартап, то попробуй сначала с ней, а потом без нее... если хочеш...
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173418
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
Круто! Работает!
Спасибо !!! :)
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173421
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
Тебе, как спецу, вопрос в догоночку ;-)
Если не в тягость, то ответь плиииз...
Существует ли в природе способ о котором я упоминал раньше. Способ отправки сообщения всем на такой то-порт... Что б те кто оный порт слушают то услышали ?? Что б не надо было из списка хосты выбирать и проверять их активность и что б по сетке не шарить в поисках хоста... Вот было бы здорово! А главное намного быстрее, как мне кажется...
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173431
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне известно, по тисипи этого не выйдет. А вот по юдипи запросто. Посылаеш на адрес ххх.ххх.ххх.255 (ну или как там у тебя сетка организована).
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173435
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
И ещё раз спасибки!
Указал направление куда копать!
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173542
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я увидел в своей функции косяк. После вызова функции в процессе останется открытый сокет. Добавь в конеце перед ендом строчку
closesocket(s);
...
Рейтинг: 0 / 0
ERROR и ClientSocket.SendText
    #32173543
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 alex_k
сенкс! добавил :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ERROR и ClientSocket.SendText
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]