Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Проверка соединения через сокеты   Найти похожие ветки 

 
termos   (2004-01-12 16:40) [0]

Добрый день.
Хочу организовать проверку соединения по сокетам из стандартного набора Делфи.
Например на одной машине запускается сервер, на другой клиент. Клиент настроен на сервер. Берется какой-то порт по умолчанию, одновременно для сервера и клиента, если порт занят для сервера или клиента, то оба переходят на следующий порт и пробуют соединиться вновь. И так до тех пор, пока соединение не будет установлено. Для проверки того, что клиент соединился с нужным сервером, проводится обмен условленной строкой.
Как это удачно и просто можно реализовать?
Спасибо.


 
kolba ot termosa   (2004-01-12 16:46) [1]


> если порт занят для сервера или клиента


нахрена клиенту привязываться к фиксированному порту ?
это нужно серверу, но никак не клиенту.

читаем документацию по Winsock.


 
termos   (2004-01-12 16:57) [2]

Хотя бы для того, чтобы он видел сервер


 
kolba ot termosa   (2004-01-12 17:03) [3]


> Хотя бы для того, чтобы он видел сервер


нет такого понятия "видел"


 
termos   (2004-01-13 08:16) [4]

Кто-нибудь еще может ответить?


 
kolba ot termosa   (2004-01-13 08:44) [5]

сервер :

for i:= 10000 to 20000 do
try
 ServerSocket.Port := i;
 ServerSocket.Active := True;
 Break;
except
end;

if ServerSocket.Active then
 ShowMessage("Порт = " + inttostr(i))
else
 ShowMessage("В диапазоне от 10000 до 20000 свободных номеров портов нет !")

клиент :

ClientSocket.ClientType := ctBlocking;
for i:= 10000 to 20000 do
try
 ClientSocket.Port := i;
 ClientSocket.Active := True;
 ClientSocket.Socket.SendText("Я - твой клиент !");
 if ClientSocket.Socket.ReceiveText = "А я - твой сервер !" then
   Break
 else
   Assert(False);
except
 ClientSocket.Active := False;
end;

if ClientSocket.Active then
 ShowMessage("Сервер обнаружен, порт = " + inttostr(i))
else
 ShowMessage("В диапазоне номеров портов от 10000 до 20000  активность сервера не обнаружена !")



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
14-1078330481
Piton_Sk
2004-03-03 19:14
2004.03.28
Кто качал TestsEdit Clift или знает e-mail автора


4-1072692276
Alexandr Tarasov
2003-12-29 13:04
2004.03.28
Блокирование файла в ОС Windows не используя полититку безопаснос


3-1077877254
Алексей
2004-02-27 13:20
2004.03.28
DbGrid выделенные строки


14-1077646685
Gero
2004-02-24 21:18
2004.03.28
Вечный вопрос: Выбор ОС (Навеяно очередным BSOD ом)


3-1077189188
Pul
2004-02-19 14:13
2004.03.28
Поля TIMESTAMP в INTERBASE