Текущий архив: 2003.05.19;
Скачать: CL | DM;
ВнизTClientSocket и TServerSocket: вопросы по принципам работы Найти похожие ветки
← →
TonnyS (2003-03-12 15:01) [0]Здравствуйте. Искал информацию по сокетам, полно вопросов/ответов/примеров типа: как передать? как сделать чат? и т.д., а ответы обычно вида: "А вот так! <пример кода>"
меня интересуют следующие вопросы:
1. TClientSocket и TServerSocket на одной машине с одним и тем же значением порта могут быть активны одновременн? т.е. безсерверный чат - программа и устанавливает и принимает подключения - возможно такое по одному и тому же порту?
т.е. на машине A TServerSocket слушает порт Port1 и тут же TClientSocket пытатся установить соединение с IP машины B по этому же порту.
2. TServerSocket: а) в чём же конкретно отличие NonBlocking и threadBlocking режимов?
б) какие потоки и сколько используются в каждом из режимов при, допустим, N соединениях? при NonBlocking эти потоки создаются автоматически? Что за ThreadCacheSize, в каком случае используется и когда может не хватить указанного в нём количества?
в) возможен ли одновременный приём данных от нескольких клиентов в режиме NonBlocking?
г) Для каких случаев рекомендуется каждый из режимов?
3. Гарантируют ли сокеты целостность данных? т.е. если я отправляю 0123456789, какая гарантия, что именно эта последовательность дойдёт (не важно, поблочно или непоблочно - имеется виду после приёма всего отправленного буфера). Т.е. собственно вопрос: стоит ли встраивать контроль CRC при передаче данных? (передача - как через локалку, так и через инет)
спасибо за внимание.
← →
Digitman (2003-03-12 15:44) [1]вопросов оч.много
ответы на них потянут на солидную книгу
рекомендую изучить, например, ресурс http://book.itep.ru в разделе Winsock(2) и , одновременно взяв на вооружение исходники компонентов в модуле scktcomp.pas, изучать их, сравнивая то, что там происходит, с тем, что излагается в ресурсе
либо - задавать вопросы по одному, в порядке осознания сути
← →
TonnyS (2003-03-12 16:04) [2]спасибо за ссылку, полезу лазить, но хоть на часть вопросов хотелось бы получить ответ :)
особенно сейчас критичный вопрос про целостность данных (3й), так как от этого зависит структура пакета (включать в него CRC или нет)
← →
Digitman (2003-03-12 16:26) [3]за целостность не волнуйся
компоненты эти используют TCP-протокол, который гаранирует доставку... опять же - тот же ресурс, топик - "протокол TCP"
для сравнения с TCP (на предмет гарантированности и целостности доставки) изучи еще топик "протокол UDP"
← →
TonnyS (2003-03-12 17:29) [4]спасибо, очень интересный ресурс, часть вопросов снято. Но вопрос 2 там не освещается ни с какой стороны :)
← →
Digitman (2003-03-12 17:38) [5]вопрос № 2 тесно связан с WSAAsyncSelect() и WSAEventSelect()
вникай в подробности этих ф-ций
← →
TonnyS (2003-03-12 19:01) [6]Спасибо за интересную ссылку и заданное направление поиска. Хотя, для начала, попробую поискать/поспрашивать на других ресурсах - может мне дадут более простое обьяснение работы TServerSocket (на уровне Дельфи а не структур IP-пакетов), а в дебрях сетевых протоколов буду копаться уже потом, для удовольствия :)
← →
Polevi (2003-03-12 19:47) [7]>более простое обьяснение работы TServerSocket
scktcomp.pas
← →
TonnyS (2003-03-20 17:27) [8]Вернёмся к нашим баранам, вопрос: подключаюсь к серверу к порту, например, 1111. В результате на сервере получаю соединение от <IP-адрес клиента>:<порт>
при этом <порт> - случайное число более 1000.
Собственно вопрос: можно ли задать порт/диапазон портов на клиентской стороне?
← →
Digitman (2003-03-20 17:45) [9]
> вопрос: можно ли задать порт/диапазон портов на клиентской
> стороне?
Контрвопрос : зачем ? ничем это не оправдано совершенно
Страницы: 1 вся ветка
Текущий архив: 2003.05.19;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.006 c