Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
14-3110
yaJohn
2003-05-14 12:57
2003.06.02
Контроль версий - быстро, дешево и сердито.


6-3035
djon
2003-03-28 21:54
2003.06.02
Ожидания выхода в Inet?


3-2794
moore
2003-05-14 15:17
2003.06.02
пример БД


3-2747
AlexGreg
2003-05-13 12:57
2003.06.02
... Медленно встаёт ...


9-2736
Baradoo
2002-12-21 20:39
2003.06.02
Распространяю Свои Игры! Нужна помощь!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский