![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Сразу предупреждаю: яндексил, поиск по форуму юзал.
Нужен простой алгоритм ping-а (без применения тяжеловесов-индейцев, всё на winsock), и если есть ответ от сервера - проверить, открыт ли на нём порт. В результате функция должна вернуть: -1 - если сервер недоступен -2 - если сервер доступен, но порт закрыт иначе среднее из двух-трёх пингов. То, что имею сейчас: Код:
function Aviable(ipaddr:string;port:integer):boolean; var D:WSAData; S:TSocket; A:TSockAddr; begin result:=false; if WSAStartup($101,D)<>0 then exit; A.sin_family:=AF_INET; A.sin_addr.S_addr:=inet_addr(pchar(ipaddr)); S:=socket(AF_INET,SOCK_STREAM,0); if S=INVALID_SOCKET then exit; A.sin_port:=htons(port); if connect(S,A,sizeof(A))=0 then result:=true; WSACleanup; end; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |