Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TClientSocket и TServerSocket: вопросы по принципам работы [D5, Win95/98, WinME, NT4, Win2k, WinXP]


TonnyS ©   (2003-03-12 15:01:00) 

Здравствуйте. Искал информацию по сокетам, полно вопросов/ответов/примеров типа: как передать? как сделать чат? и т.д., а ответы обычно вида: "А вот так! <пример кода>"
меня интересуют следующие вопросы:
1. TClientSocket и TServerSocket на одной машине с одним и тем же значением порта могут быть активны одновременн? т.е. безсерверный чат - программа и устанавливает и принимает подключения - возможно такое по одному и тому же порту?
т.е. на машине A TServerSocket слушает порт Port1 и тут же TClientSocket пытатся установить соединение с IP машины B по этому же порту.

2. TServerSocket: а) в чём же конкретно отличие NonBlocking и threadBlocking режимов?
б) какие потоки и сколько используются в каждом из режимов при, допустим, N соединениях? при NonBlocking эти потоки создаются автоматически? Что за ThreadCacheSize, в каком случае используется и когда может не хватить указанного в нём количества?
в) возможен ли одновременный приём данных от нескольких клиентов в режиме NonBlocking?
г) Для каких случаев рекомендуется каждый из режимов?

3. Гарантируют ли сокеты целостность данных? т.е. если я отправляю 0123456789, какая гарантия, что именно эта последовательность дойдёт (не важно, поблочно или непоблочно - имеется виду после приёма всего отправленного буфера). Т.е. собственно вопрос: стоит ли встраивать контроль CRC при передаче данных? (передача - как через локалку, так и через инет)

спасибо за внимание.


Digitman   (2003-03-20 17:45:00) [1]


> вопрос: можно ли задать порт/диапазон портов на клиентской
> стороне?


Контрвопрос : зачем ? ничем это не оправдано совершенно


TonnyS   (2003-03-20 17:27:00) [2]

Вернёмся к нашим баранам, вопрос: подключаюсь к серверу к порту, например, 1111. В результате на сервере получаю соединение от <IP-адрес клиента>:<порт>
при этом <порт> - случайное число более 1000.
Собственно вопрос: можно ли задать порт/диапазон портов на клиентской стороне?


Polevi   (2003-03-12 19:47:00) [3]

>более простое обьяснение работы TServerSocket
scktcomp.pas


TonnyS   (2003-03-12 19:01:00) [4]

Спасибо за интересную ссылку и заданное направление поиска. Хотя, для начала, попробую поискать/поспрашивать на других ресурсах - может мне дадут более простое обьяснение работы TServerSocket (на уровне Дельфи а не структур IP-пакетов), а в дебрях сетевых протоколов буду копаться уже потом, для удовольствия :)


Digitman   (2003-03-12 17:38:00) [5]

вопрос № 2 тесно связан с WSAAsyncSelect() и WSAEventSelect()

вникай в подробности этих ф-ций


TonnyS   (2003-03-12 17:29:00) [6]

спасибо, очень интересный ресурс, часть вопросов снято. Но вопрос 2 там не освещается ни с какой стороны :)


Digitman   (2003-03-12 16:26:00) [7]

за целостность не волнуйся

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

для сравнения с TCP (на предмет гарантированности и целостности доставки) изучи еще топик "протокол UDP"


TonnyS   (2003-03-12 16:04:00) [8]

спасибо за ссылку, полезу лазить, но хоть на часть вопросов хотелось бы получить ответ :)
особенно сейчас критичный вопрос про целостность данных (3й), так как от этого зависит структура пакета (включать в него CRC или нет)


Digitman   (2003-03-12 15:44:00) [9]

вопросов оч.много

ответы на них потянут на солидную книгу

рекомендую изучить, например, ресурс http://book.itep.ruв разделе Winsock(2) и , одновременно взяв на вооружение исходники компонентов в модуле scktcomp.pas, изучать их, сравнивая то, что там происходит, с тем, что излагается в ресурсе


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо