Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проверка соединения через сокеты [D5, Win2k]


termos ©   (2004-01-12 16:40:00) 

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


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

сервер :

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  активность сервера не обнаружена !')


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

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


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


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


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


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

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


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


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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо