Re: "Byte Array"

From: Date: Tue, 14 Dec 2004 18:29:40 +0000
Subject: Re: "Byte Array"
References: 1 2 3 4 5 6  Groups: php.general 
Request: Send a blank email to php-general+get-204327@lists.php.net to get a copy of this message
Ian Firla wrote: > I thought of that too and have since expanded my debugging. The types > are correct when passed to fwrite. They come out the other end as > strings: > > 16:39:54 SENT 'K' of type string > 16:39:54 SENT '0' of type integer > 16:39:54 SENT '0' of type integer > 16:39:54 SENT '65' of type integer > 16:39:54 SENT '31' of type integer > > 15:46:10 192.168.0.101:32778 --> 192.168.0.84:32896 | UDP | > > 0000: 4b K > > > 15:46:10 192.168.0.101:32778 --> 192.168.0.84:32896 | UDP | > > > 0000: 30 0 > > > 15:46:10 192.168.0.101:32778 --> 192.168.0.84:32896 | UDP | > > 0000: 30 0 > > > 15:46:10 192.168.0.101:32778 --> 192.168.0.84:32896 | UDP | > > 0000: 3635 65 > > > 15:46:10 192.168.0.101:32778 --> 192.168.0.84:32896 | UDP | > > 0000: 3331 31 > > As you can see, the last two elements "65" and "31" have arrived as > strings of two bytes rather than integers of one. Damn. Okay, maybe maybe maybe try putting your binary data into a temp file, and then sending that file out. It won't be fast, but it might suffice for what you need. That's assuming fwrite() to a file will output binary data... Another option would be to convert to the string that would match the binary data you want... if (is_int($msg_to_send)){ fwrite($fp, chr($msg_to_send)); } else{ fwrite($fp, $msg_to_send); } This would be faster, and probably cleaner than the temp file, actually. NOTE: is_int is faster than gettype() == 'integer' and the manual states that they don't guarantee that 'integer' won't change some day. Use is_int. -- Like Music? http://l-i-e.com/artists.htm

« previous php.general (#204327) next »