The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Socket, передать структуру данных"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Socket, передать структуру данных"  
Сообщение от jr email(ok) on 11-Окт-07, 11:22 
Есть у меня пара unix сокетов, которая связывает два процесса - $s_parent и $s_child.
Можно в этот сокет напечатать текст в одном процессе - print $s_child "тест\n";
а в другом его прочитать while( <$s_parent> ) { print; }

Каким образом можно передать через этот сокет структуру данных, а не просто текстовую строку?

т.е. есть у меня, например, такие данные в одном процессе
my $s = { qqq => 'bla-bla', www => [ 12, 34 ] };

и мне нужно, что бы через unix сокет эти данные попали в другой процесс в том же виде, т.е. тоже в виде хэша

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Socket, передать структуру данных"  
Сообщение от AMDmi3 (??) on 11-Окт-07, 15:07 
>Каким образом можно передать через этот сокет структуру данных, а не просто
>текстовую строку?

http://search.cpan.org/~ams/Storable-2.16/Storable.pm

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Socket, передать структуру данных"  
Сообщение от Аноним on 11-Окт-07, 15:15 
>Каким образом можно передать через этот сокет структуру данных, а не просто
>текстовую строку?

Никак.

Через сокет передаётся поток байтов.

Ты можешь закодировать  структуру перед отправкой и распаковать при приёме.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Socket, передать структуру данных"  
Сообщение от jr email(ok) on 11-Окт-07, 15:22 
>>Каким образом можно передать через этот сокет структуру данных, а не просто
>>текстовую строку?
>
>http://search.cpan.org/~ams/Storable-2.16/Storable.pm
>
>Никак.
>
>Через сокет передаётся поток байтов.
>
>Ты можешь закодировать  структуру перед отправкой и распаковать при приёме.

Ну, я как раз при помощи Storable и кодирую. Вот так примерно:
------------------
# преобразует структуру данных perl в строку
sub data_to_string {
   return join( '_', unpack( "C*", Storable::freeze( shift ) ) );
}
# преобразует строку в структуру данных perl
sub string_to_data {
   return Storable::thaw( pack( "C*", split( '_', shift ) ) );
}
------------------
только у меня ощущение, что это как то не очень правильно
может как то можно поправить данный код?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру