Re: binary data over UDP with PHP?

From: Date: Thu, 08 Jul 2004 07:50:16 +0000
Subject: Re: binary data over UDP with PHP?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-189945@lists.php.net to get a copy of this message
If you're receiving binary data back, this function may interest you: http://aidan.dotgeek.org/lib/?file=function.hexdump.php Also, why are you messing with chr etc? $string = "\x00\x01\xFF"; etc. "Coder_1024" <coder_1024@hotmail.com> wrote in message news:20040708022403.82466.qmail@pb1.pair.com... > Thanks for the feedback. As it turns out, the reason I was getting zero > data bytes in my UDP packet was that I had declared the packet variable > outside the function in which I was using it. > > $packet = chr(0x01).chr(0x1d).... etc > > function doSomething($x) > { > // using $packet in here gives you an empty variable. > } > > So I guess it was a very basic PHP language thing I was running into. Guess > I've done too much Perl and assumed the variables were accessible in the > function. :-) > > > "Keith Greene" <hitek@cox.net> wrote in message > news:6.1.1.1.0.20040707170321.01dda740@pop.west.cox.net... > > I use the following without problem: > > > > $fp = fsockopen("udp://www.server.com", 24250, &$errno, &$errstr, > .2); > > if (!$fp) { > > $status = "Server not available"; > > } else { > > $trigger = > > > > chr(hexdec('FF')).chr(hexdec('FF')).chr(hexdec('01')).chr(hexdec('00')); > > fwrite($fp,$trigger); # Send trigger to the > > status server > > $junk = fread($fp, 4); # discard echoed command > > from status server > > } > > > > Keith > > > > At 04:23 PM 7/7/2004, coder_1024 wrote: > > >I'm trying to send some binary data to a UDP server using PHP. The > examples > > >I've been able to find show sending binary data over TCP, or they show > > >sending text over UDP. > > > > > >I'm constructing the messages using the below: > > > > > > $text_msg = "Hello, World\r\n"; > > > $binary_msg = chr(0x01).chr(0x02).chr(0x00).chr(0xAD); > > > $binary_msg_size = 4; > > > > > >I've tried a couple methods of sending the data: > > > > > > $fp = fsockopen("udp://" . $host,$port,....); > > > fwrite($fp,$binary_msg,$binary_msg_size); > > > > > >and > > > > > > $sock = socket_create(AF_INET,SOCK_DGRAM,SOL_UDP); > > > socket_sendto($sock,$binary_msg,$binary_msg_size,0,$host,$port); > > > > > >In either case, a UDP packet is sent, but with a zero data size. If I > > >instead send the $text_msg, it works as expected. For some reason > sending > > >the binary data doesn't work. > > > > > >Does anyone have insight into how to send binary data over UDP using PHP? > > > > > >-- > > >PHP General Mailing List (http://www.php.net/) > > >To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#189945) next »