[Ruby] Re[2]: [Ruby] Послать массив в TCPsocket в HEX виде - Bug ???????????

Vladyslav vladare at yahoo.com
Thu Jan 9 14:10:30 MSK 2003


Hello Alexander,

Thursday, January 9, 2003, 11:55:18 AM, you wrote:


Спасибо, после нескольких пасов помогло! :-)

Но ...
Оказалось что у меня в массиве были не только Fixnum но и String.
Я попытался привести их всех к Fixnum и здесь я наткнулся на странное:

irb(main):056:0> s = [ 1, 2, 3 ]
[1, 2, 3]
irb(main):057:0> t = [ 4, 5, 6, [7, 8] ]
[4, 5, 6, [7, 8]]
irb(main):058:0> a = [ s, t, 9, 10 ]
[[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10]
irb(main):059:0> a.flatten
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
irb(main):060:0> a[0].type
Array

Такое впечатление что после метода Flatten наследуются родительские
типы.

Баг ?

С Уважением!
Влад



AB> On Thu, Jan 09, 2003 at 11:37:06AM +0200, Vladyslav wrote:
>> Hello All,
>> 
>> Предположим у меня есть
>> 
>> @s = TCPsocket.open(host, port)
>> r=[0x30,0x32,0x30,0x30,0x32,0x30,0x05,0x80,0x20,0xC0,0x80,0x00,0x30,0x30,0x30,0x30]
>> 
>> r.each {|c|
>>         @s.putc(c)
>>        }
>> 
>> На другой стороне получаю:
>> 30.32.30.30.32.30.05.80.20.C0.80.00.30.30.30.30
>> Этот вариант не подходит мне , так как каждое число идет отдельным пакетом.
>> Я же хочу кинуть весь массив одним пакетом.
>> При этом вариант:
>> @s.write(r)
>> не проходит
>> Получаю на другой стороне:
>> 30.32.30.30.35.30.34.38.35.31.32.38.33.32.31.39
>> 
>> Есть предложения ?
AB> @s.write(r.pack("c*")) ?




-- 
Best regards,
 Vladyslav                            mailto:vladare at yahoo.com




More information about the Ruby mailing list