delphi + java µÄ·Ö²¼Ê½Ó¦ÓÃ˼¿¼
ÓÃdelphi×ö½çÃæ²ã javaÒµÎñÂß¼²ã ÕâÑù¿´ÉÏÈ¥ºÜÃÀ°É£¿
¾ßÌåµÄʵÏÖ
java ×öÒµÎñÂß¼²ã Ó¦¸ÃÓжàÖÖÑ¡Ôñ ÆóÒµ¼¶µÄÓÐEJB3, ÇáÁ¿¼¶µÄÓÐspring
ĿǰÔÚѧϰejb3£¬¸Ð¾õÓÃÀ´×öÒµÎñÂß¼²ãÕæµÄºÜ²»´í¡£spring»¹Ã»ÓÐÁ˽â
½çÃæ²ãÓÃdelphi£¬RADÓ¦¸ÃÊÇdelphiµÄÓÅÊÆ¡£
¹Ø¼üµÄÎÊÌâµÄÈç¹û°Ñǰ¶ËµÄdelphi¸úÖмäµÄjavaÁ¬ÏµÆðÀ´¡£
ĿǰÎÒÄÜÏëµ½µÄÓÐÒÔϼ¸ÖÖ·½Ê½
webserverice, xml-rpc, json-rpc,php-rpc
webservice
delphiÀïÖ§³Öwebservice ejb3Ò²Ö§³Öwebservice
¡¡ÎÊÌâµã¡¡
¡¡¡¡£±¡¢Ê¹ÓÃwebserviceµÄЧÂÊÔõôÑù£¬Ò»°ãµÄ¸Ð¾õÊÇʹÓÃwebserviceµÄЧÂʲ»ÊǺܺÃ
¡¡¡¡£²¡¢ejb3ÖÐwebserviceÊÇÎÞ״̬µÄ£¬ÈçºÎʹÓý»Ò×
¡¡¡¡£³¡¢delphi µÄwebserviceºÍejb3ÖÐwebserviceµÄ¼æÈÝÎÊÌâ
xml-rpc
delphiÓпªÔ´µÄxml-rpcµÄÏîÄ¿£¬javaʵÏÖxml-rpcÓ¦¸ÃÒ²ÓбȽϺõķ½Ê½
php-rpc
¹úÄÚ¿ª·¢µÄ£¬delphiÓÐÏàÓ¦µÄphp-rpcµÄ¿Í»§¶Ë¿Ø¼þ
json-rpc
¸öÈËÈÏΪÕâ¸ö±È½ÏºÃ£¬ÔÚdelphi 2009ÖÐеķֲ¼Ê½¼Ü¹¹ÖÐÒ²ÊDzÉÓõÄjsonµÄ×ÊÁÏ´«Êä¸ñʽ£¬
¡¡¡¡µ«Ä¿Ç°²»Ã ......
delphi + java µÄ·Ö²¼Ê½Ó¦ÓÃ˼¿¼
ÓÃdelphi×ö½çÃæ²ã javaÒµÎñÂß¼²ã ÕâÑù¿´ÉÏÈ¥ºÜÃÀ°É£¿
¾ßÌåµÄʵÏÖ
java ×öÒµÎñÂß¼²ã Ó¦¸ÃÓжàÖÖÑ¡Ôñ ÆóÒµ¼¶µÄÓÐEJB3, ÇáÁ¿¼¶µÄÓÐspring
ĿǰÔÚѧϰejb3£¬¸Ð¾õÓÃÀ´×öÒµÎñÂß¼²ãÕæµÄºÜ²»´í¡£spring»¹Ã»ÓÐÁ˽â
½çÃæ²ãÓÃdelphi£¬RADÓ¦¸ÃÊÇdelphiµÄÓÅÊÆ¡£
¹Ø¼üµÄÎÊÌâµÄÈç¹û°Ñǰ¶ËµÄdelphi¸úÖмäµÄjavaÁ¬ÏµÆðÀ´¡£
ĿǰÎÒÄÜÏëµ½µÄÓÐÒÔϼ¸ÖÖ·½Ê½
webserverice, xml-rpc, json-rpc,php-rpc
webservice
delphiÀïÖ§³Öwebservice ejb3Ò²Ö§³Öwebservice
¡¡ÎÊÌâµã¡¡
¡¡¡¡£±¡¢Ê¹ÓÃwebserviceµÄЧÂÊÔõôÑù£¬Ò»°ãµÄ¸Ð¾õÊÇʹÓÃwebserviceµÄЧÂʲ»ÊǺܺÃ
¡¡¡¡£²¡¢ejb3ÖÐwebserviceÊÇÎÞ״̬µÄ£¬ÈçºÎʹÓý»Ò×
¡¡¡¡£³¡¢delphi µÄwebserviceºÍejb3ÖÐwebserviceµÄ¼æÈÝÎÊÌâ
xml-rpc
delphiÓпªÔ´µÄxml-rpcµÄÏîÄ¿£¬javaʵÏÖxml-rpcÓ¦¸ÃÒ²ÓбȽϺõķ½Ê½
php-rpc
¹úÄÚ¿ª·¢µÄ£¬delphiÓÐÏàÓ¦µÄphp-rpcµÄ¿Í»§¶Ë¿Ø¼þ
json-rpc
¸öÈËÈÏΪÕâ¸ö±È½ÏºÃ£¬ÔÚdelphi 2009ÖÐеķֲ¼Ê½¼Ü¹¹ÖÐÒ²ÊDzÉÓõÄjsonµÄ×ÊÁÏ´«Êä¸ñʽ£¬
¡¡¡¡µ«Ä¿Ç°²»Ã ......
½áºÏDelphi
¿Í»§¶Ë×ÀÃæ¿ª·¢µÄÓÅÊÆºÍJavaµÄÎȽ¡Ç¿×³ÌØÐÔ£¬²ÉÓÃDelphi
Client + Java ServerµÄϵͳ¼Ü¹¹Ó¦¸ÃÊǺÜÓÐÊг¡µÄ£¬¾¹ýÒ»¶Îʱ¼äµÄʵ¼ÊÏîĿʵ¼ù£¬ÊµÏּܹ¹ÊÇÕâôʵÏֵ쬹©ÌÖÂÛ£º
1.ºǫ́ӦÓ÷þÎñ²ã¿É²ÉÓûùÓÚSpring+HibernateµÄÇáÁ¿¼¶J2EEʵÏÖ£¬²¢Ê¹ÓÃApache XML-RPC
Ìṩ¿Í»§¶Ëµ÷Óýӿڣ»
2.ǰ̨²ÉÓà Delphi
XML-RPC
µ÷Ó÷þÎñÆ÷¶ËÒµÎñʵÏÖ½Ó¿Ú£»
3.ºǫ́ºÍǰ̨·Ö±ðʵÏÖXML-¶ÔÏóÐòÁл¯£»
4¡¢¿ÉÑ¡ÓÃSLL£¬¿ÉÖ§³ÖÊý¾ÝѹËõ£»£¨Õâ¸öÐèÒª¶ÔDelphi
XML-RPC
ʵÏÖ×÷һЩÀ©Õ¹£©
ϵͳ¼Ü¹¹ÊµÏÖ»ùÓÚ¼¸µã¿¼ÂÇ£º
1¡¢XML-RPC
ͬSOAP±È½Ï£ºÓÉÓÚDelphi
SOAP¿Í»§¶Ë´æÔÚһЩÐÔÄÜÎÊÌâºÍͬJavaʵÏÖ´æÔÚһЩ¼æÈÝÐÔÎÊÌ⣬Òò´Ë¿¼ÂDzÉÓÃXML-RPC
ʵÏÖ£¬¶øÇÒXML-RPC
ʵÏÖͬSOAPʵÏÖÏà±È½Ï£¬ÐÔÄÜÒªºÃºÜ¶à£»
2¡¢XML-RPC
ͬSOCKET±È½Ï£º²ÉÓÃHTTPÐÒé¿ÉÒÔÓÐЧ´©Í¸²»Í¬ÍøÂç·À»ðǽ£»
3¡¢²ÉÓÃXML¸ñʽ½»»»Êý¾Ý£¬¶ø²»²ÉÓÃXML-RPC
±ê×¼¸ñʽ½»»»Êý¾Ý£¬Ö÷ÒªÊÇÓÉÓÚXML-RPC
¸ñʽ±È½Ï¼òµ¥£¬¸´ÔÓµÄÊý¾Ý¸ñʽºÜÄÑÂú×ãÐèÇó£¬Ö±½ÓʹÓöÔÏóXMLÊý¾ÝÁ÷·½Ê½£¬ÓÐÀûÓÚϵͳÀ©Õ¹£»
ʹÓõĵÚÈý·½Èí¼þÁÐ±í£¨¿ªÔ´²úÆ·£¬¿ÉÓÃÓÚÉÌÒµ¿ª·¢£©
Spring Framework£ºhttp://www.springframework.org
Hibernat ......
½áºÏDelphi
¿Í»§¶Ë×ÀÃæ¿ª·¢µÄÓÅÊÆºÍJavaµÄÎȽ¡Ç¿×³ÌØÐÔ£¬²ÉÓÃDelphi
Client + Java ServerµÄϵͳ¼Ü¹¹Ó¦¸ÃÊǺÜÓÐÊг¡µÄ£¬¾¹ýÒ»¶Îʱ¼äµÄʵ¼ÊÏîĿʵ¼ù£¬ÊµÏּܹ¹ÊÇÕâôʵÏֵ쬹©ÌÖÂÛ£º
1.ºǫ́ӦÓ÷þÎñ²ã¿É²ÉÓûùÓÚSpring+HibernateµÄÇáÁ¿¼¶J2EEʵÏÖ£¬²¢Ê¹ÓÃApache XML-RPC
Ìṩ¿Í»§¶Ëµ÷Óýӿڣ»
2.ǰ̨²ÉÓà Delphi
XML-RPC
µ÷Ó÷þÎñÆ÷¶ËÒµÎñʵÏÖ½Ó¿Ú£»
3.ºǫ́ºÍǰ̨·Ö±ðʵÏÖXML-¶ÔÏóÐòÁл¯£»
4¡¢¿ÉÑ¡ÓÃSLL£¬¿ÉÖ§³ÖÊý¾ÝѹËõ£»£¨Õâ¸öÐèÒª¶ÔDelphi
XML-RPC
ʵÏÖ×÷һЩÀ©Õ¹£©
ϵͳ¼Ü¹¹ÊµÏÖ»ùÓÚ¼¸µã¿¼ÂÇ£º
1¡¢XML-RPC
ͬSOAP±È½Ï£ºÓÉÓÚDelphi
SOAP¿Í»§¶Ë´æÔÚһЩÐÔÄÜÎÊÌâºÍͬJavaʵÏÖ´æÔÚһЩ¼æÈÝÐÔÎÊÌ⣬Òò´Ë¿¼ÂDzÉÓÃXML-RPC
ʵÏÖ£¬¶øÇÒXML-RPC
ʵÏÖͬSOAPʵÏÖÏà±È½Ï£¬ÐÔÄÜÒªºÃºÜ¶à£»
2¡¢XML-RPC
ͬSOCKET±È½Ï£º²ÉÓÃHTTPÐÒé¿ÉÒÔÓÐЧ´©Í¸²»Í¬ÍøÂç·À»ðǽ£»
3¡¢²ÉÓÃXML¸ñʽ½»»»Êý¾Ý£¬¶ø²»²ÉÓÃXML-RPC
±ê×¼¸ñʽ½»»»Êý¾Ý£¬Ö÷ÒªÊÇÓÉÓÚXML-RPC
¸ñʽ±È½Ï¼òµ¥£¬¸´ÔÓµÄÊý¾Ý¸ñʽºÜÄÑÂú×ãÐèÇó£¬Ö±½ÓʹÓöÔÏóXMLÊý¾ÝÁ÷·½Ê½£¬ÓÐÀûÓÚϵͳÀ©Õ¹£»
ʹÓõĵÚÈý·½Èí¼þÁÐ±í£¨¿ªÔ´²úÆ·£¬¿ÉÓÃÓÚÉÌÒµ¿ª·¢£©
Spring Framework£ºhttp://www.springframework.org
Hibernat ......
ö¾ÙÀàÐÍ
¡¡¡¡Pascal³ÌÐò²»½öÓÃÓÚÊýÖµ´¦Àí£¬»¹¸ü¹ã·ºµØÓÃÓÚ´¦Àí·ÇÊýÖµµÄÊý¾Ý¡£ÀýÈ磬ÐÔ±ð¡¢Ô·ݡ¢ÐÇÆÚ¼¸¡¢ÑÕÉ«¡¢µ¥Î»Ãû¡¢Ñ§Àú¡¢Ö°ÒµµÈ¡£
1¡¢Ã¶¾ÙÀàÐ͵͍Òå
¸ñʽ:¡¡type ö¾ÙÀàÐͱêʶ·û=(±êʶ·û1,±êʶ·û2,…,±êʶ·ûn)
2¡¢Ã¶¾ÙÀàÐÍÊý¾ÝÌØµã
¢Ù ö¾ÙÔªËØÖ»ÄÜÊDZêʶ·û£»
ÀýÈ磬ÏÂÁÐÀàÐͶ¨ÒåÊǺϷ¨µÄ£º
¡¡¡¡ type days=(sun,mon,tue,wed,thu,fri,sat);
¡¡¡¡ colors=(red,yellow,blue,white,black,green);
¡¡¡¡ ¶øÏÂÁÐÀàÐͶ¨ÒåÊÇ´íÎóµÄ:
¡¡¡¡ type colortype=('red','yellow','blue','white');
¡¡¡¡ numbers=(1,3,5,7,9);
¶¨Òåö¾ÙÀàÐÍʱÁгöµÄËùÓÐö¾ÙÔªËØ¹¹³ÉÁËÕâÖÖö¾ÙÀàÐ͵ÄÖµÓò£¨È¡Öµ·¶Î§£©¡£
¢Ú ö¾ÙÀàÐÍÊôÓÚ˳ÐòÀàÐÍ
¡¡ ¸ù¾Ý¶¨ÒåÀàÐÍʱ¸÷ö¾ÙÔªËØµÄÅÅÁÐ˳ÐòÈ·¶¨ËüÃǵÄÐòºÅ£¬ÇÒÐòºÅ´Ó0¿ªÊ¼¡£
ÀýÈ磬¶¨Òåtype days=(sun,mon,tue,wed,thu,fri,sat);
Ôò£¬ ord(sun)=0,ord(mon)=1,……£¬ÒÔ´ËÀàÍÆ¡£
ö¾ÙÀàÐÍÖеĵÚÒ»¸öÔªËØÎÞǰÇ÷£¬×îºóÒ»¸öÔªËØÎÞºó¼Ì¡£
pred(sat)=fri; succ(sun)=mon; ord(sat)=6;
¢Û ͬһ¸öö¾ÙÔªËØ²»ÄܳöÏÖÔÚÁ½¸ö»òÁ½¸öÒÔÉϵÄö¾ÙÀàÐͶ¨ÒåÖС£ÈçÏÂÁж¨ÒåÊÇ´íÎóµÄ:
¡¡¡¡ type color1=(red,yellow,white);
¡¡¡¡¡¡¡¡ col ......
ö¾ÙÀàÐÍ
¡¡¡¡Pascal³ÌÐò²»½öÓÃÓÚÊýÖµ´¦Àí£¬»¹¸ü¹ã·ºµØÓÃÓÚ´¦Àí·ÇÊýÖµµÄÊý¾Ý¡£ÀýÈ磬ÐÔ±ð¡¢Ô·ݡ¢ÐÇÆÚ¼¸¡¢ÑÕÉ«¡¢µ¥Î»Ãû¡¢Ñ§Àú¡¢Ö°ÒµµÈ¡£
1¡¢Ã¶¾ÙÀàÐ͵͍Òå
¸ñʽ:¡¡type ö¾ÙÀàÐͱêʶ·û=(±êʶ·û1,±êʶ·û2,¡,±êʶ·ûn)
2¡¢Ã¶¾ÙÀàÐÍÊý¾ÝÌØµã
¢Ù ö¾ÙÔªËØÖ»ÄÜÊDZêʶ·û£»
ÀýÈ磬ÏÂÁÐÀàÐͶ¨ÒåÊǺϷ¨µÄ£º
¡¡¡¡ type days=(sun,mon,tue,wed,thu,fri,sat);
¡¡¡¡ colors=(red,yellow,blue,white,black,green);
¡¡¡¡ ¶øÏÂÁÐÀàÐͶ¨ÒåÊÇ´íÎóµÄ:
¡¡¡¡ type colortype=('red','yellow','blue','white');
¡¡¡¡ numbers=(1,3,5,7,9);
¶¨Òåö¾ÙÀàÐÍʱÁгöµÄËùÓÐö¾ÙÔªËØ¹¹³ÉÁËÕâÖÖö¾ÙÀàÐ͵ÄÖµÓò£¨È¡Öµ·¶Î§£©¡£
¢Ú ö¾ÙÀàÐÍÊôÓÚ˳ÐòÀàÐÍ
¡¡ ¸ù¾Ý¶¨ÒåÀàÐÍʱ¸÷ö¾ÙÔªËØµÄÅÅÁÐ˳ÐòÈ·¶¨ËüÃǵÄÐòºÅ£¬ÇÒÐòºÅ´Ó0¿ªÊ¼¡£
ÀýÈ磬¶¨Òåtype days=(sun,mon,tue,wed,thu,fri,sat);
Ôò£¬ ord(sun)=0,ord(mon)=1,¡¡£¬ÒÔ´ËÀàÍÆ¡£
ö¾ÙÀàÐÍÖеĵÚÒ»¸öÔªËØÎÞǰÇ÷£¬×îºóÒ»¸öÔªËØÎÞºó¼Ì¡£
pred(sat)=fri; succ(sun)=mon; ord(sat)=6;
¢Û ͬһ¸öö¾ÙÔªËØ²»ÄܳöÏÖÔÚÁ½¸ö»òÁ½¸öÒÔÉϵÄö¾ÙÀàÐͶ¨ÒåÖС£ÈçÏÂÁж¨ÒåÊÇ´íÎóµÄ:
¡¡¡¡ type color1=(re ......
Delphi×Ö·û´®¼ÓÃܽâÃܺ¯Êý
¹¦ÄÜ£º×Ö·û´®¼ÓÃܺͽâÃÜ
Ê×Ïȶ¨ÒåÒ»¸ö³£Á¿Êý×é
const
XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //×Ö·û´®¼ÓÃÜÓÃ
ÔÚ³ÌÐòÀï¼ÓÈëÒÔÏÂÁ½¸öº¯Êý£¬
function Enc(Str:String):String;//×Ö·û¼ÓÃܺ¯數 這ÊÇÓõÄÒ»個異»ò¼ÓÃÜ
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;
function Dec(Str:String):String;//×Ö·û½âÃܺ¯數
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) div 2 do
begin
Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j:=(j+1) mod 8;
end;
end;
......
ÔÚDelphiÀïʵÏÖMD5¼ÓÃÜÆäʵºÜÈÝÒ×£¡·½·¨ÈçÏ£º
ÔÚUsesµ¥ÔªÖÐÒýÓà IdHashMessageDigest,IdGlobal, IdHash µ¥Ôª£¬ÔÙдÈçÏ´úÂë
¼´¿ÉÒÔ´ïµ½MD5µÄʵÏÖ¡£
ʾÀý´úÂë
procedure
TForm
1.Button1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD5.HashValue('');
ShowMessage('32: ' + MyMD5.AsHex(Digest)); //ÏÔʾ32¸ö×Ö·û³¤¶ÈµÄMD5Ç©Ãû½á¹û
ShowMessage('16: ' + Copy(MyMD5.AsHex(Digest), 9, 16)); //ÏÔʾ16¸ö×Ö·û³¤¶ÈµÄMD5Ç©Ãû½á¹û
end;
˵Ã÷£º
MyMD5.HashValue º¯ÊýÖпÉÒÔÊÇÒ»¸ö×Ö·û´®»òÊÇÒ»¸öÁ÷¶ÔÏó,Ëü·µ»ØµÄ½á¹ûÀàÐÍΪ T4x4LongWordRecord µÄMD5Ç©Ãûºó½á¹û
MyMD5.AsHex º¯ÊýÊǽ«T4x4LongWordRecordµÄMd5Ç©Ãûת»»³ÉΪʮÁù½øÖƵÄMD5Ç©Ãû×Ö·û´®
......