Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Сокеты в Unix   Найти похожие ветки 

 
Daniel   (2004-04-25 11:18) [0]

Мне придется соединяться с программой, работающей под UNIX. Я слышал, там работает только один режим - синхронный или асинхронный. Какой из них? И, насколько я понимаю, Winsocket там уже неработает, значит надо использовать что-то другое?

 P.S. На машине, где запускает моя программа, стоит Win.


 
Verg ©   (2004-04-25 11:59) [1]

Грубо говоря в -nix-ах два режима сокетов - блокирующий и неблокирующий.
Но это тебя не должно беспокоить никоим образом. Со стороны сети протокол-то тот же: TCP/IP, UDP/IP и т.д.


 
Daniel   (2004-04-25 13:23) [2]

Извиняюсь за ламерский вопрос: характеристика "blocking-notblocking" связана с характеристикой "синхронный-асинхронный"?


 
Verg ©   (2004-04-25 13:43) [3]


> Daniel   (25.04.04 13:23) [2]


Это вопрос терминологический. Я пользуюсь такими понятиями:
Режимы у сокетов бывают.:

1. блокируемый   (будем ждать завершения операции (какой бы долгой она не была) или в некоторых случаях можно применить мультиплексирование (select))
2. неблокируемый (операция началась, но возможно не завершилась и результаты завершения операции надо проверять самому, отдельыми вызовами (опросами или мультиплексированием)
2.1 асинхронный (опреация началась, а об ее завершении ядро сообщит отдельно (оконное сообщение, сигнал-event, или еще как-то) мультиплексирование не применяется (has no effect)

Таким образом - асинхронный режим - это разновидность (более продвинутая) неблокируемого режима.

Все это лишь способы взаимодействия приложений с сетвеым ядром.

Куда отнести "синхронный" - я не знаю, да и зачем его куда-то относить?


 
Digitman ©   (2004-04-25 13:53) [4]


> Daniel   (25.04.04 11:18)  


для простоты в первом приближении можно считать, что термины "блокирующий" и "синхронный" - синонимы

хотя, если быть более точным, "блокирующий/неблокирующий" относится к режиму работы объекта и его интерфейсных вызовов, в то время как "синхронный/асинхронный" относится к алгоритму, работающему с объектом и его интерфейсными вызовами

использование неблокирующего режима подразумевает организацию либо синхронного ("линейного") алгоритма (с мультиплексированием или без) либо асинхронного алгоритма ("нелинейного", с нотификациями того или иного вида)


 
Daniel   (2004-04-25 14:20) [5]

Я правильно понимаю, что блокирующий/неблокирующий/асинхронный - эти режимы каждый определяет сам на СВОЕЙ стороне и, вообще говоря, двое участников коннекта могут работать в РАЗНЫХ режимах, а то значит, что я могу использовать Winsocket при работет с *nix сервером?


 
Digitman ©   (2004-04-25 14:26) [6]


> Daniel


да, каждая сторона соединения вольна выбирать допустимые режимы на свой вкус и под свои потребности - на работе другой стороны это никак не отражается


 
Daniel   (2004-04-25 17:39) [7]

Спасибо всем огромное. Разобрался.


 
Daniel   (2004-04-25 17:41) [8]

Спасибо всем огромное. Разобрался.



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

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.036 c
14-1084601093
robyn
2004-05-15 10:04
2004.06.13
Стоит ли обновлять Microsoft Word 2000®


6-1082642467
dark2004
2004-04-22 18:01
2004.06.13
Помогите органиовать поддержку Perl на моем Webсервере


1-1086160251
Anton
2004-06-02 11:10
2004.06.13
Записи с вариантами


1-1085665362
Delph
2004-05-27 17:42
2004.06.13
TOpenDialog


1-1085983350
DmitryNekl
2004-05-31 10:02
2004.06.13
Сохранение формы в файл и чтение из файла





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