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

Вниз

Services+Socket?   Найти похожие ветки 

 
Pokotskiy   (2003-03-31 13:37) [0]

У меня есть клиентськая часть програмы (services) и серверная,
мне надо чтоби при включении клиентського компа загружалась
клиентськая часть и автоматичиски конектилась до сервера.
По идеи должно работать но не работает (
timer.ontimer - >clientsocket.open;)
Но проблема такая: если сервер не загружен - конект не проходит, потом загружаем сервер конект дальше не идёт, надо наново перезапускать services на локальних компах.


 
Dimich1978 ©   (2003-03-31 20:03) [1]

тут много всего, и вариант "не коннект", тоже лучше учитывать, и вообще трудно подсказать человеку если кода нет.
А вообще следуй след.правилам(да согласитесь со мной мастера):
1. Строим каркас обмена данными в том числе и соединения сервера и клиента.
2. И только на этом этапе начинаем передавать данные.
3. Дальше дело техники.

Нвчни с того(лучше всего посоветует Digiman), с перебора и все же почитывания инфориации про протокол TCP/IP далее переходим к программе нашей и родимой.
Расматриваем варианты ошибок при которых может появиться дисконнет и их обработка. Что в свою очередь приведет тебя к более осмысленному подходу. И тем более передача данных
На мой взгля далее у тебя возникнет вопрос а почему данные приходят "склееными"?
Удачи в тових начинаниях.
Нужны исходники пиши, но это уже худштй вариант, лучше пиши о том что сам не можешь организовать поможем.


 
pok   (2003-04-01 10:48) [2]

Привожу код, может кто мопожет...
........
........
procedureM TSGuard.ServiceCreate(Sender: TObject);
begin

Bloks:=True;
timer1.Enabled:=true;
end;
procedure TSGuard.CmsSockDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
cmssock.Active:=false;
timer1.Enabled:=true;
end;

procedure TSGuard.CmsSockError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
cmssock.Active:=false;

timer1.Enabled:=true;
end;
.......
........


 
dimich1978 ©   (2003-04-01 14:17) [3]

В событии CmsSockError, не гасится ошибка, лучше поступить так:
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
case ErrorCode of // что за ошибка ?
WSAECONNREFUSED, // хост недоступен или порт неактивен
WSAECONNABORTED, // хост прервал предудущий коннект по своей инициативе
WSAECONNRESET: // коннект разорван по иным причинам
begin
Socket.Disconnect(Socket.SocketHandle); // закроем гнездо
ErrorCode:= 0; // сбросим ошибку
timer1.enabled:=true; // запустим таймер
end;
end;
end;


 
pok   (2003-04-01 16:44) [4]

Спасибо! То что надо!



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
4-3209
Nimbus
2003-03-16 21:30
2003.06.02
Как вытащить содержимое ячейки StringGrid а ЧУЖОЙ программы


8-3014
Kirill KIrsanov
2003-02-16 16:56
2003.06.02
Немогу


7-3180
Гульшат
2003-03-17 18:34
2003.06.02
Загрузка программы


1-2878
User
2003-05-22 12:43
2003.06.02
Быстрое копирование блоков памяти


6-3046
Gross
2003-04-01 22:01
2003.06.02
есть ип! надо узнать имя юзера, под которым он залогинился