Главная страница
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.012 c
3-2747
AlexGreg
2003-05-13 12:57
2003.06.02
... Медленно встаёт ...


14-3167
wasilla
2003-05-15 13:44
2003.06.02
Дрова


4-3223
UNIVERSAL
2003-04-04 19:40
2003.06.02
Как сделать окно поверх всех окон данного приложения


6-3040
Pokotskiy
2003-03-31 13:37
2003.06.02
Services+Socket?


11-2829
Kirill
2002-08-16 22:39
2003.06.02
SysUtils