Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пожскажите пожалуйста!!! Отправка пакета TCP, Отправка пакета по TCP на удаленный серв 
:(
    Опции темы
Гость_Ярослав
  Дата 6.10.2005, 02:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Имеется пакет:

0000 00 a9 40 0f 84 8c 00 0d 61 21 8e e2 08 00 45 00 [email protected]!....E.
0010 00 51 41 a2 00 00 80 2f 75 07 c0 a8 01 83 c0 a8 .QA..../u.......
0020 01 01 30 01 88 0b 00 31 fb 00 00 00 13 be 21 45 ..0....1......!E
0030 00 00 30 41 a1 40 00 80 06 a5 65 ac 10 04 a0 53 [email protected]
0040 de 0f 33 05 7a 1e 61 c3 c3 5c 08 00 00 00 00 70 ..3.z.a..\.....p
0050 02 ff 00 2d 1a 00 00 02 04 05 50 01 01 04 02 ...-......P....

Нужно его отправить на удаленный сервер по TCP протоколу с известными IP, порт.
Чем проще, тем лучше... Может проги уже какие созданы?

Помогите! please! Очень нужно.
  Вверх
LSD
Дата 6.10.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 19
Всего: 538



Тебе нужно данные передать на удаленный сервер, или именно сформировать 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.
PM MAIL WWW   Вверх
COVD
Дата 6.10.2005, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Берете любой учебник по Java. Находите там пример, как открыть сокетное соединение с помощью класса Socket и послать через OutputStream любые данные - примитивные типы (вероятно ваш случай) или даже обьект. Никаких пакетов.
PM MAIL   Вверх
vzf
Дата 7.10.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: нет
Всего: 5



отправить данные при помощи класса Socket не трудно, но я не уверен, что данные перешлются одним пакетом.
--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
COVD
Дата 7.10.2005, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 11
Всего: 43



Зачем вам одним пакетом? О сборке пакетов сокет позаботится сам, если данные не умещаются в пакет. Пакет = 1500 байт, из них 40 - служебная информация, 1460 - данные. Если данные умещаются в 1460 байт, то они и будут отосланы целиком.

Есть также опция, когда очень короткие посылки обьединяются в один пакет для уменьшения сетевого трафика, но это можно отменить.

Посмотрите усовершенствованный сокет, пакет java.nio. Там вы будете работать напрямую с байтовым буфером и сможете увидеть, как длинные данные пересылаются порциями по 1460 байт.

Это сообщение отредактировал(а) COVD - 7.10.2005, 15:35
PM MAIL   Вверх
vzf
Дата 7.10.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: нет
Всего: 5



Нет, протсто в вопросе спрашивалось про данные

0000 00 a9 40 0f 84 8c 00 0d 61 21 8e e2 08 00 45 00 [email protected]!....E.
0010 00 51 41 a2 00 00 80 2f 75 07 c0 a8 01 83 c0 a8 .QA..../u.......
0020 01 01 30 01 88 0b 00 31 fb 00 00 00 13 be 21 45 ..0....1......!E
0030 00 00 30 41 a1 40 00 80 06 a5 65 ac 10 04 a0 53 [email protected]
0040 de 0f 33 05 7a 1e 61 c3 c3 5c 08 00 00 00 00 70 ..3.z.a..\.....p
0050 02 ff 00 2d 1a 00 00 02 04 05 50 01 01 04 02 ...-......P....

И на вскидку я не мог сказать влезит это в один пакет или нет. А отправляють вроде можно так

Код

ServerSocket ServerSocket = new ServerSocket(port);
 Socket   socket = ServerSocket.accept();

  // поток информации со стороны сервера
  PrintWriter out = new PrintWriter(new BufferedWriter(new
            OutputStreamWriter(
            socket.getOutputStream())), true);
  // отправка строки клиенту
  out.println("SomeString");

  /**
   *  есть и другие методы out.write() например, если не строку передавать 
   */ 



--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
val
Дата 19.10.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: нет
Всего: 7



Мне кажется, что через класс Socket эту задачу не решить, реализация класса скрывает возможность указания как и какой длины будут передаваться пакеты.
Класс Socket обеспечивает только оправку данных по TCP, но не даёт возможность управлять самим процессом в деталях. Надо смотреть что-то другое.


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
vzf
Дата 19.10.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 10.9.2005

Репутация: нет
Всего: 5



Цитата
Мне кажется, что через класс Socket эту задачу не решить, реализация класса скрывает возможность указания как и какой длины будут передаваться пакеты.

Сто пудов. Именно это я и хотел сказать, ведь кто знает как там класс Socket перешлет данные, ни в одном из методов нет возможности что-либо сконфигурировать.
--------------------
Java - Write Once, Test EveryWhere!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.