WindowsとLinuxで動かしたときの動作が違ってしまいます
以下のスクリプトをWindowsで動かしたときにはちゃんと最後まで動くのに対し、Linuxで動かすとループの2週目でとまってしまいます。
こういうことって結構よくあることなんですか??
解決法などご存知の方いたら教えてください
ーーーーーーーーーー
PKTMP="C6C6nCCnnnCCnC4C4"
HEADLEN=34
ST = Struct.new(:tomac,:frommac,:toip,:fromip,:ttl,:prot,:data)
def analyze(data)
result = Array.new
i=0
while data
head = data.unpack(PKTMP)
if (head[12] != 0x800) || (head[13] != 0x45)
result << "error! in No.#{i} packet"
return result
end
tmp = ST.new
tmp.tomac = macaddr(head,0)
tmp.frommac= macaddr(head,6)
tmp.toip = ipaddr(head,-8)
tmp.fromip=ipaddr(head,-4)
tmp.ttl = sprintf("%d",head[18])
tmp.prot = sprintf("%d",head[19])
data.slice!(0...HEADLEN)
datalen = head[15] - (head[13] & 0xf)*4
tmp.data = data.slice!(0...datalen)
result << tmp
i+=1
end # end of (while data )
return result
end
お礼
そうですね。動く確証はないので、問題が解決できなかったら諦めることにします。 回答ありがとうございました。