![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
На сколько мне известно классы Socket, ServerSocket работают через TCP.
Соответственно по пакетам дата делится автоматический. Каким образом можно общаться своими пакетами? |
|||
|
||||
| kkorsakoff |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 4 Всего: 14 |
"Сырых" сокетов в Java нет, то есть никак. Немного непонятна цель, для которой это может понадобиться. Изучение на практике семейства TCP/IP или что? А так через JNI. Но если не ошибаюсь, в одной из двух библиотек с одинаковым именем jpcap
|
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Вы о чем? Пакет tcp состоит из фиксированной длины заголовка и данных. Отправлять данные рамером в один байт невыгодно. Очень длинные данные отослать в одном пакете невозможно. Максимальный размер пакета лежит в пределах 0.5 - 1.5 кб . Поэтому передающий сокет и оптимизирует пакеты, обьединяя короткие сообщения и расщепляет длинные. Если не устраивает tcp, то можно применить udp сокет. Тоже стандартный заголовок + данные. И никакой "автоматики". Это сообщение отредактировал(а) COVD - 8.11.2006, 17:47 |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
kkorsakoff, COVD,
Дело в том что если я хочу содать свой протокол то я не хочу его сожать на ещё один... Добавлено @ 18:01 COVD, При это сами покеты я могу сам гобирать или он всё равно это воспримит как обычную информацию? |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Вы можете создать свой протокол общения, понятный только вашему приложению. Но чтобы этот протокол работал в интернете, он должен базироваться на одном из стандартных протоколов. Так , tcp является надстройкой над udp.
Вы можете взять за основу udp, который определяет формат отсылаемого пакета. Формат пакета (наличие заголовка, требуемые поля, максимальный размер) вы не можете изменить - тогда пакеты в интернете не будут распознаваться и не будут доходить до адресата. А вот сделать свой сценарий работы с пакетом можно. Если вы сделаете так, чтобы приемная сторона подтверждала прием пакета и отправку нового пакета делать только после подтверждения получения предыдущего, то вы реализуете собственную версию tcp\ip. |
|||
|
||||
| ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
COVD, Спасибо, начну работать
Это сообщение отредактировал(а) ShurikA - 8.11.2006, 18:58 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
TCP не является надстройкой над UDP, это совершенно независимые протоколы. Они оба работают поверх IP (Стек протоколов TCP/IP). Java не даст вам самим формировать TCP или UDP пакеты, для этого надо работать напрямую с ОС. Да и зачем? Все прикладные протоколы работают поверх TCP и не испытывают при этом никаких затруднений. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
Это называется алгоритмом Нагла(накопление пакетов). |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Где вы оба раньше были
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |