Net_Socketはphpライセンスなので改変済みのconnectのコードの一部を張ってみた。

元のコードはこんな感じ。http://pear.php.net/package/Net_Socket/docs/latest/__filesource/fsource_Net_Socket__Net_Socket-1.0.9Socket.php.html
全部貼る必要もないしpatchつくっても、きっと元コードがバージョンアップされるだろうしなー

<?php
// $typeを追加
    function connect($addr, $port = 0, $persistent = null, $timeout = null, $options = null, $type= null)
    {
        if (is_resource($this->fp)) {
            @fclose($this->fp);
            $this->fp = null;
        }

        if (!$addr) {
            return $this->raiseError('$addr cannot be empty');
        } elseif (strspn($addr, '.0123456789') == strlen($addr) ||
                  strstr($addr, '/') !== false) {
            $this->addr = $addr;
        } else {
            $this->addr = @gethostbyname($addr);
        }

        $this->port = $port % 65536;

        if ($persistent !== null) {
            $this->persistent = $persistent;
        }

        if ($timeout !== null) {
            $this->timeout = $timeout;
        }

        // $typeがあったらアドレスの先頭に繋げる
        if ($type !== null) {
            $this->addr = $type . $this->addr;
            //echo $this->addr;
        }
/* 省略 */
    }

エラーチェックは完全に何もしてないけど対応できた。この件に関してちょっとググったところだと
[PHP-users 17021]Re: UDPブロードキャストを受け取るには?
の一文、

Net_Socket も見てみましたが、これは完全に TCP しか相手にしてないです ねぇ。

と妙なことをいう人は昔からいるようだ。なんで開発元はラッパの指定を出来ないようにしてるんだろ?不思議だな。