Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
3-2790
me2
2003-05-14 14:20
2003.06.02
Программное удаление пользователя


1-2904
Nikos
2003-05-22 17:55
2003.06.02
Как вызвать процедуру OnDrawCell объекта ТStringGrid


14-3111
Knight
2003-05-13 22:00
2003.06.02
А какой жизненный принцип у вас?


14-3065
Swift
2003-05-15 21:21
2003.06.02
новичок в Delphi. Первые вопросы.


1-2959
Nesterovsky
2003-05-18 11:21
2003.06.02
Как в TListView отображать записи разным шрифтом




   Наверх