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

Вниз

IdTCPClient&IdTCPServer VS ServerSocket&ClientSocket   Найти похожие ветки 

 
MetalFan ©   (2004-07-27 10:16) [0]

что лучше использовать? что надежнее работает?


 
Reindeer Moss Eater ©   (2004-07-27 10:21) [1]

Какой ряд кресел в самолете летит надежнее?
Левый или правый?


 
Digitman ©   (2004-07-27 10:24) [2]


> что лучше использовать?


это решать только тебе, все зависит от конкретного применения


> что надежнее работает?


оба набора компонентов используют протокол TCP/IP, так что вопрос о "надежности" компонентов сводится к вопросу о надежности протокола TCP/IP, а таковой вообще не ставится, ибо этот протокол специально разработан для обеспечения гарантированной доставки сообщений


 
MetalFan ©   (2004-07-27 10:32) [3]

хорошо) у меня с Indy такая проблема:
в примерах чата на основе Indy TCP Server/Client
если при подсоединненых клиентах попытаться остановить сервер, то вываливает ошибку: Project XXX raised exception class EIdSocketError with message "Socket Error #10038 Socket operation on non-socket..." не пойму из-за чего!


 
Reindeer Moss Eater ©   (2004-07-27 10:34) [4]

не пойму из-за чего!

Неужели до сих пор не понял?

Эта ошибка из за того, что :

если при подсоединненых клиентах попытаться остановить сервер


 
MetalFan ©   (2004-07-27 10:36) [5]

т.о. их надо сначала отключить?


 
Reindeer Moss Eater ©   (2004-07-27 10:37) [6]

Зачем?
Сервер волен остановиться когде ему захочется.


 
MetalFan ©   (2004-07-27 10:50) [7]

а что тогда с ошибкой делать? просто try..except?


 
Digitman ©   (2004-07-27 11:14) [8]


> MetalFan ©   (27.07.04 10:50) [7]
> а что тогда с ошибкой делать?


искать ее причину и устранять


 
Reindeer Moss Eater ©   (2004-07-27 11:17) [9]

а что тогда с ошибкой делать? просто try..except?

Надо просто понять, что исключения - это не досадные особенности микросхем из которых сделаны компьютеры.
Это (в данном случае) - средство помогающее разработчику компонента сообщить простым и дешевым способом пользователю компонента о том, что что-то произошло. В данном случае - закрытие TCP соединения.


 
MetalFan ©   (2004-07-27 11:32) [10]

попробую описать подробнее, может кто поможет:
есть IdTCPServer у него обработчики событий:

TServer.OnDisconnect(AThread: TIdPeerThread);
begin
 if assigned(FClients) then
   DoRefreshClients;
end;
...
TServer.OnExecute(AThread: TIdPeerThread);
var
FMess: string;
begin
 FMess := AThread.Connection.ReadLn("", 200); <=здесь выдает ошибку
 if (trim(FMess) <> "")
 begin
   DoBroadCastMessage(FMess + ": " +   AThread.Connection.Binding.PeerIP);    
 end;
end

при установке серверу Active:= false;
а указанном месте выдает вышеупомянутую ошибку и только потом попадает в OnDisconnect...


 
Reindeer Moss Eater ©   (2004-07-27 11:34) [11]

FMess := AThread.Connection.ReadLn("", 200); <=здесь выдает ошибку

И это по твоему неправильно?
А как по твоему правильно должно быть?
Сервер погасили, а он как ни в чем ни бывало продолжает выполнять ReadLn и может быть даже получает полезные данные от клиентов?
Так что ли?


 
MetalFan ©   (2004-07-27 11:52) [12]

что-то я совсем запутался! а какой модет быть выход из этой ситуации?


 
Digitman ©   (2004-07-27 12:02) [13]


> MetalFan ©   (27.07.04 11:52) [12]


в дан.ситуации одним из выходов и будет заключение ReadLn в блок try..except

Но ! ситуация-то прояснилась лишь ПОСЛЕ того, как ты привел КОНКРЕТНЫЙ код ! ... так стоило ли делать столько бесполезных постов ? да еще и бросать зерно сомнения в огород "надежности" компонентов ?


 
MetalFan ©   (2004-07-27 12:10) [14]

сорри за неверный подход к проблеме!
всем спасибо за помощь!



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

Форум: "Сети";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.032 c
14-1095099827
Jus
2004-09-13 22:23
2004.10.03
Как можно сделать свой комп с ХР "сервером" или как его там?)...


11-1080976041
Deimos
2004-04-03 11:07
2004.10.03
где мои байты ????


1-1095228689
Fedia
2004-09-15 10:11
2004.10.03
Синхронизация в потоке


9-1086474625
RyDmi
2004-06-06 02:30
2004.10.03
Работа с видеокартой


1-1095239652
Чайник
2004-09-15 13:14
2004.10.03
Случайный цвет





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