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

Вниз

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

Наверх




Память: 0.46 MB
Время: 0.038 c
14-1085565049
Knight
2004-05-26 13:50
2004.06.13
Как вылечить дозвон в Win2k?


1-1085929480
Seldon
2004-05-30 19:04
2004.06.13
Размеры и координаты макс. окна


1-1086082142
Yuriy
2004-06-01 13:29
2004.06.13
FastNet под Delphi7


1-1085721989
Артем К.
2004-05-28 09:26
2004.06.13
Создание компонента на основе TCustomControl с полосой прокрутки


14-1085738439
syte_ser78
2004-05-28 14:00
2004.06.13
Учебник по Turbo Vision





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