Здрайствуйте у меня проблема. Мне нужно клиента к серверу послать строку по следуюшему принципу посылаю строку серверу, он её обрабатывает в ответ посылает 0 и 1, клиент принимает.
Проблема вот в чем Первый раз послал все нормально и принял и послал.
Второй раз пытаюсь выходит ошибка о сокетах. Как я понял у меня почему то порт который я использовал первый раз не закрылся. как то можно это исправить. Хотя может я как то ни так написал если что выложу исходник процедуры.
Клиент:
Цитата:
clientsocket1.Address:='192.168.55.78'; //Адресс сервера
clientsocket1.port:=1112; // Используемый порт
clientsocket1.Open;
clientsocket1.Socket.Connect(1112);
clientsocket1.Socket.SendText('Пароль'); //Сама строка
repeat //повторяю цикл пока не получу строку
ukaz := clientsocket1.Socket.ReceiveText; //присваиваю переменой полученую строку
until ukaz<>'';
clientsocket1.Socket.Disconnect(1112); //Дисконект
clientsocket1.Close;
post:=ukaz;
|
Сервер: по действию OnClientRead
Цитата:
repeat //повторяю цикл пока не получу строку
Ukaz:= Socket.ReceiveText; //Полученая строка (Пароль)
label1.Caption:=ukaz; //это для вида просто
until ukaz <>'';
if pos('пароль',ukaz)<>0 then //если в строке есть слово пароль
Socket.SendText(CheckProc); //то посылаем другую строку
//перем. CheckProc глобальная переменая содержит либо 0 либо 1
|