ÀûÓÃphpÖеÄevalÀ´Ä£ÄâjavaÖеĶ¯Ì¬´úÀí
ʹÓÃjavaÖеĶ¯Ì¬´úÀí¿ÉÒÔÍê³ÉºÜ¶àÊÂÇ飬±ÈÈ罫ҵÎñʵÀý½øÐÐÍйܣ¬ÊµÏÖAOPµÈ£¬µ«ÊÇPhpÖÐûÓÐʵÏÖÕâÑùµÄ¶«Î÷£¬×òÌìͻȻÏëµ½Æäʵ¿ÉÒÔͨ¹ýevalÀ´Ä£ÄâÒ»¸ö¶¯Ì¬´úÀí»úÖÆ¡£php±Èjava²»Í¬µÄÊÇ£¬phpÊDz»ÐèÒª±àÒëµÄ£¬Òò´ËÖ»ÒªÎÒÃÇÄܹ»¶¯Ì¬Éú³ÉÒ»¶Î´úÂ룬ȻºóÓÃevalÀ´Ö´ÐоͿÉÒԴﵽЧ¹û¡£´úÂëÈçÏ£º
/**
* ´úÀíʵÏÖÀà
*/
interface IInvocationHandler
{
function invoke($method, array $arr_args);
}
/**
* ´úÀíÀà
*/
final class Proxy
{
const CLASS_TEMPLATE = '
final class %s implements %s
{
private $handler;
public function __construct(IInvocationHandler $handler)
{
$this->handler = $handler;
}
%s
}
';
const FUNCTION_TEMPLATE = '
public function %s(%s)
{
$arr_args = func_get_args ();
$arr_method = explode("::", __METHOD__);
$this->handler->invoke ( $arr_method[1], $arr_args );
}
';
public static function newProxyInstance(array $arr_interface, IInvocationHandler $handler)
{
$className = self::getClassName ( $arr_interface );
if (class_exists ( $className ))
{
return new $className ( $handler );
}
self::checkInterfaceExists ( $arr_interface );
self::generateClass ( $arr_interface );
return new $className ( $handler );
}
protected static function generateClass(array $arr_interface)
{
$className = self::getClassName ( $arr_interface );
$interfaceList = implode ( ',', $arr_interface );
$functionList = '';
foreach ( $arr_interface as $interface )
{
$class = new ReflectionClass ( $interface );
$arr_method = $class->getMethods ();
foreach ( $arr_method as $method )
{
$methodName = $method->getName ();
$arr_parameter = $method->getParameters ();
$parameterArray = array ();
foreach ( $arr_parameter as $parameter )
{
$parameterName = $parameter->getName ();
$parameterArray [] = '$' . $parameterName;
}
$parameterList = implode ( ',', $parameterArray );
}
$functionList .= sprintf ( self::FUNCTION_TEMPLATE, $methodN
Ïà¹ØÎĵµ£º
***´ËÌâÒÔ¿¼²ì»ù´¡Îª×¼,±±¾©µÄ±ÊÊÔÌâ,¿ÉÄÜÓÐÈË×ö¹ý
Ìâ:дһ¸ö³ÌÐò£¬½âÎöÈçϸñʽµÄ×Ö·û´®£¬²¢½«½âÎöµÄÊý×ÖÐòÁдòÓ¡³öÀ´¡£
×Ö·û´®¸ñʽ¾ÙÀý£º -1~2, 3~3, 5~10, 7~15x3
~ ´ú±íÊý×ֵķ¶Î§£¬ -1~2 ´ú±í´Ó-1¿ªÊ¼µ½2Ö®¼äµÄËùÓÐÊý×Ö¡£ 3~3 ´ú±í´Ó3¿ªÊ¼µ½3µÄËùÓÐÊý×Ö£¬Ò²¾ÍÊÇ3
7~15x3´ú ......
¶àÏ̶߳Áдͬһ¸ö¶ÔÏóµÄÊý¾ÝÊÇºÜÆÕ±éµÄ£¬Í¨³££¬Òª±ÜÃâ¶Áд³åÍ»£¬±ØÐë±£Ö¤ÈκÎʱºò½öÓÐÒ»¸öÏß³ÌÔÚдÈ룬ÓÐÏß³ÌÕýÔÚ¶ÁÈ¡µÄʱºò£¬Ð´Èë²Ù×÷¾Í±ØÐëµÈ´ý¡£¼òµ¥Ëµ£¬¾ÍÊÇÒª±ÜÃâ“д-д”³åÍ»ºÍ“¶Á-д”³åÍ»¡£µ«ÊÇͬʱ¶ÁÊÇÔÊÐíµÄ£¬ÒòΪ“¶Á-¶Á”²»³åÍ»£¬¶øÇҺܰ²È«¡£
ҪʵÏÖÒÔÉϵÄReadWriteLock£¬ ......
1. socketͨÐÅ£ºÓпͻ§¶ËºÍ·þÎñ¶ËµÄsocket´úÂë¡£
2.
¶àỊ̈߳º¿Í»§¶ËºÍ·þÎñ¶Ë¸÷ÓÃÒ»Ï̷߳¢ËÍÐÅÏ¢£»·þÎñ¶ËÁíÓÐÒ»¼àÌýỊ̈߳¬ÓÃÓڰѳ¬Ê±µÄÐÅϢɾ³ý¡£
ÕâÀïÓ¦Óõ½ÁËͬ²½£¬Ê¹Á½¸öÏ߳̿ÉÒÔ²Ù×÷ͬһ¸ömap¡£
´úÂ룺£¨ÀàÈ«ÔÚͬһ¸ö°üÄÚ£©
server¶Ë£º
import java.io.BufferedReader;
import java.i ......
±äÁ¿,³£Á¿µÄ¸ÅÄî
•
JavaÓïÑÔÖÐÓÐÎåÖÖ²»Í¬ÀàÐ͵ij£Á¿,
–
•1ÕûÐͳ£Á¿:ÈκÎÒ»¸öÕûÐÍÊý×Ö¾ÍÊÇÒ»¸öÕûÐͳ£Á¿.
–JavaÓïÑÔÖÐ,ÕûÐͳ£Á¿ÓÐÈýÖÖ±íʾ·½Ê½:
•Ê®½øÖÆ:0,1,2,3,4,5,6,7,8,9,10,11,12…¶¼ÊÇÊ®½øÖƵij£Á¿
•°Ë½øÖÆ:°Ë½øÖÆ¿ÍÁ÷Á¿Ö»ÄÜÓÃ0,1,2,3,4,5,6,7À ......
phpÖÐis_dirÖÐÄÜ·ñÕýÈ··µ»ØÈ·ÊµºÍĿ¼ȨÏÞÉèÖÃÓйØÏµ¡£¡£¡£
ŪÁ˺þᣡ£Ò»Ö±ÒÔΪ²»ÊÇȨÏÞÎÊÌâ¡£
»·¾³ÊÇiis6.0+php5.2
ÍøÕ¾Ä¿Â¼ÊÇÔÚd:\vhost\web1
ÒªÓÃis_dirº¯Êý±ØÐëÉèÖÃȨÏÞd:\£¬d:\vhostΪ¿É¶Á¿ÉÁÐĿ¼
Ò²¾ÍÊÇweb1Ç°Ãæ¼¸¼¶µÄĿ¼¶¼ÒªÓпɶÁ¿ÉÁÐĿ¼µÄȨÏÞ¡£ ......