LinuxÏÂʵÏÖRPC±à³Ì
Linux ÏÂÃæÊ¹ÓÃRPCÐèҪʹÓõ½ÃüÁîrpcgen.
ÔÚLinuxÏ¿ª·¢RPC³ÌÐòÁ÷³ÌÈçÏ£º
1.дһ¸örpc³ÌÐò
Èçtest.x
2.ʹÓÃrpcgenÉú³É±ØÐëµÄÎļþ£¬Í¨³£Êǿͻ§¶ËºÍ·þÎñÆ÷¶ËÒÔ¼°Í·Îļþ
$rpcgen test.x
3.ʹÓÃrpcgenÉú³É·þÎñÆ÷¶ËºÍ¿Í»§¶ËµÄCÓïÑÔ´úÂë
$rpcgen -Ss -o test_server.c test.x
$rpcgen -Sc -o test_client.c test.x
4.Éú³ÉMakefile
$rpcgen -Sm test.x>Makefile
5.±à¼Ô´Îļþ£¬¼ÓÈëÄãÏëÒªµÄ·þÎñµÈ
6.±à¼Makefile,ÕâºÜÖØÒª£¡
7.Ö´ÐвâÊÔ
ÎÊÌ⣺
1.·þÎñÆ÷ÎÞ·¨Æô¶¯£¬´íÎóÈçÏ£º
Cannot register service: RPC: Unable to receive; errno = Connection refused
unable to register (TESTPROG, VERSION, udp).
½â¾ö·½·¨£ºÏµÍ³Ã»Óа²×°portmap»òÕßûÓÐÆô¶¯portmap¶Ë¿ÚÓ³Éä¡£
$ls /etc/init.d/
Èç¹ûûÓÐportmapÔò°²×°Ö®
$sudo apt-get install portmap
Èç¹ûÓÐÁË£¬ÔòÆô¶¯
$sudo /etc/init.d/portmap start
»¹¿ÉÒÔʹÓÃchkconfigÉèÖÃϵͳ¿ª»úÆô¶¯µÄ·þÎñÏÈ罫portmap¼ÓÈ뿪»úÆô¶¯£º
$sudo chkconfig --level 2 -s portmap on
ÏÂÃæÊÇ¿ª·¢Ò»¸örpc³ÌÐòµÄ¾ßÌåÁ÷³Ì£¬Ïê¼û
http://zhoulifa.bokee.com/6128714.html
ÎÒÔÚ±à³ÌÖÐÓöµ½ÒÔϼ¸¸öÎÊÌ⣺
1.MySQLÊý¾Ý¿â´íÎó
1£©±¨¸æÁ¬½Ó²»ÉÏMySQL£¬´úÂëÈçÏÂ
if(mysql_real_connect(conn,"127.0.0.1","root","password",
"database",0,NULL,0)){
fprintf(stderr,"%s\n%s\n",mysql_error(conn),
"Êý¾Ý¿âÁ¬½Óʧ°Ü");
exit(1);
}
ÔÒòÈçÏ£ºÅжÏÓï¾ä´íÎó£¬Ó¦¸ÃΪif(mysql_real_connect(conn,...)==NULL){
...
}
2.¸üÐÂÊý¾Ýʧ°Ü
char *sql="update test_table set balance=1000 where id=1000";
result=mysql_query(conn,sql);
if(result==NULL){
.....
/*´íÎó*/
}
ÔÒòÈçÏ£º»¹ÊÇÅжÏÓï¾ä´íÎó£¬ÓÉÓÚ¸üвÙ×÷²»Ïò²éѯ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
LinuxÌṩÁËÄÚ´æÓ³É亯Êýmmap, Ëü°ÑÎļþÄÚÈÝÓ³Éäµ½Ò»¶ÎÄÚ´æÉÏ(׼ȷ˵ÊÇÐéÄâÄÚ´æÉÏ), ͨ¹ý¶ÔÕâ¶ÎÄÚ´æµÄ¶ÁÈ¡ºÍÐÞ¸Ä, ʵÏÖ¶ÔÎļþµÄ¶ÁÈ¡ºÍÐÞ¸Ä, ÏÈÀ´¿´Ò»ÏÂmmapµÄº¯ÊýÉùÃ÷: Í·Îļþ: ÔÐÍ: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offsize); ·µ» ......
Ò»¡¢´ÓÄÄÀïµ½ÄÄÀï
±¾ÎÄÖ¼ÔÚÃèÊölinuxÖÐÄÚºËÈçºÎµ÷ÓÃÆô¶¯£¬È»ºóÈçºÎ´ÓimgµÄÎļþϵͳÇл»µ½Ó²Å̵Ĺý³Ì¡£
ÃèÊöÆðÓÚ£ºlinux-2.6.11/init/main.cÖк¯Êý static int init(void * unused)
ÃèÊöÖ¹ÓÚ£º/etc/rc.d/rc.sysinitÎļþµÄ±»µ÷ÓÃ
¶þ¡¢ÃèдÁ÷³Ì
ÔÚlinux´úÂëlinux-2.6.11/init/main.cÖÐinitÕâ¸öº¯Êý±»µ÷ÓÃʱ£¬³ ......
½ø³ÌÊÇϵͳÖгÌÐòÖ´ÐкÍ×ÊÔ´·ÖÅäµÄ»ù±¾µ¥Î»¡£Ã¿¸ö½ø³Ì¶¼ÓÐ×Ô¼ºµÄÊý¾Ý¶Î£¬´úÂë¶ÎºÍ¶ÑÕ»¶Î£¬Õâ¾Íµ¼ÖÂÁ˽ø³ÌÔÚ½øÐÐÇл»µÈ²Ù×÷Æðµ½ÁËÏÖ³¡±£»¤×÷Óᣵ«ÊÇΪÁ˽øÒ»²½¼õÉÙ´¦Àí»úµÄ¿Õתʱ¼äÖ§³Ö¶à´¦ÀíÆ÷ºÍ¼õÉÙÉÏÏÂÎÄÇл»¿ªÏú£¬½ø³ÌÑÝ»¯ÖгöÏÖÁËÁíÍâÒ»¸ö¸ÅÄÕâ¾ÍÊÇỊ̈߳¬Ò²±»È˳ÆÎªÇáÁ¿¼¶µÄ½ø³Ì¡£ËüÊÇÒ»¸ö½ø³ÌÄڵĻù±¾µ÷¶Èµ¥ ......