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

Вниз

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

Наверх





Память: 0.46 MB
Время: 0.006 c
14-59898
JibSkeart
2003-04-27 12:56
2003.05.19
Круто У нас Метель была я в шоке :о)


1-59691
DNK
2003-05-06 09:02
2003.05.19
Меню на MDI форме


8-59809
mate
2003-02-08 11:45
2003.05.19
Сохранение рисунка


14-59945
msoftware
2003-04-30 15:53
2003.05.19
Где достать Erwin ERX Platinum?


1-59746
MGA
2003-05-05 14:16
2003.05.19
Как писать программы без VCL?





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