Главная страница
    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.012 c
1-2966
Chery
2003-05-21 11:10
2003.06.02
Как Borland Socket Server (scktsrvr) сделать службой?


3-2777
Caesar
2003-05-13 15:53
2003.06.02
Tera XL


4-3218
Puke Zero
2003-04-05 13:12
2003.06.02
WindowClass


14-3146
User
2003-05-13 16:07
2003.06.02
Свои компоненты?


1-2849
Renegate
2003-05-22 08:22
2003.06.02
Перевод строк из ListBox в числовой формат.........





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский