linux socket±à³ÌÏà¹ØÖªÊ¶µÄ×ܽá
1£ºsocket±à³ÌÖвÉÓõÄÐÒé×åÖ÷ÒªÓÐÁ½ÖÖ
£º
1>£ºÍøÂçÐÒé×å(ÐÎʽÈ磺AF_INET, PF_INETµÈ)
2>£º±¾µØunixÓò¸ñʽµÄÐÒé×å(ÐÎʽÈ磺AF_LOCAL, AF_UNIXµÈ)
×¢£ºÐÒé×åµÄÑ¡ÔñÌåÏÖÔÚ int socket(int domain, inst type, int protocol)º¯ÊýµÄµÚÒ»¸ö²ÎÊý´¦¡£
2£ºÕâÁ½ÖÖÐÒé×åµÄÇø±ð£º
1>£º±¾µØunixÓò¸ñʽµÄÐÒé×壬ֻÄÜÓÃÓÚ±¾»ú(¼´£¬¿Í»§¶ËºÍ·þÎñÆ÷¶ËÔÚͬһ̨»úÆ÷)£»¶øÍøÂçÐÒé×å
²»½ö¿ÉÒÔÓÃÓÚ±¾»úÒ²¿ÉÒÔ¿çÍøÂç
2>£º±¾»úÉϵĿͻ§¶ËºÍ·þÎñ¶ËÖ®¼äµÄͨѶ²ÉÓñ¾µØunixÓò¸ñʽµÄÐÒé×åÒª±È²ÉÓÃÍøÂçÐÒé×åµÄËÙ¶È¿ì
3>£º±¾µØunixÓò¸ñʽµÄÐÒé×åÓõÄÒ²±È½Ï¹ã·º£¬ÈçһЩ·þÎñÆ÷µÄÄ£¿é¼äµÄͨѶ(mysql)£¬ ÔÙ±ÈÈç¹ÜµÀµÈ¡£
3£ºsocketͨѶµÄ¼¸¸ö¹Ø¼üµÄº¯Êý
1>£ºsendº¯Êý£¬ÔÐÍ£¬ int send(SOCKET s, const char FAR *buf , int len, inf flags)¡£¸Ãº¯ÊýµÄÏêϸ½éÉÜ£º
²ÎÊýs£¬Ì×½Ó×ÖÃèÊö·û£» ²ÎÊýbuf£¬´æ·Å·¢ËÍÊý¾ÝµÄ»º³åÇø£» ²ÎÊýlen, ·¢ËÍÊý¾ÝµÄ³¤¶È£» ²ÎÊýflags£¬±êÖ¾£¬Ò»°ãΪ0£»
¸Ãº¯ÊýµÄÖ´ÐÐÁ÷³Ì(ͬ²½socket
)£º
(1)£ºÊ×ÏȱȽÏlenÓëÌ×½Ó×ÖsµÄ·¢ËÍ»º³åÇø³¤¶ÈµÄ´óС(len1)£¬Èç¹ûlen´óÓÚlen1£¬ÄÇô¸Ãº¯ÊýÁ¢¼´·µ»ØSOCKET_ERROR
(2)£ºÈç¹ûlen < len1, È»ºósend¼ì²éÐÒéÊÇ·ñÊÇÔÚ·¢ËÍsµÄ·¢ËÍ»º³åÇøÀïµÄÊý¾Ý£¬Èç¹ûÊǾ͵ȴýÐÒ齫Êý¾Ý·¢ËÍÍ꣬Èç¹ûÐÒ黹ûÓпªÊ¼·¢ËÍsµÄ·¢ËÍ»º³åÇøÀïµÄÊý¾Ý»òÕßsµÄ·¢ËÍ»º³åÇøÊǿյģ¬ÄÇôsend¾Í±È½ÏsµÄ·¢ËÍ»º³åÇøµÄÊ£Óà¿Õ¼ä(len2)ºÍlenµÄ´óС
(3)£ºÈç¹ûlen > len2, ÄÇôsend¾ÍÒ»ÖµµÈ´ýÐÒ齫sµÄ·¢ËÍ»º³åÇøÖеÄÊý¾Ý·¢ËÍÍê
(4)£ºÈç¹ûlen < len2, ÄÇô¾Í½«´ý·¢Ë͵ÄÊý¾Ýcopyµ½sµÄ·¢ËÍ»º³åÇøÀï
×¢£ºsendº¯ÊýÖ»Êǽ«´ý·¢Ë͵ÄÊý¾Ýcopyµ½Ì×½Ó×ÖsµÄ·¢ËÍ»º³åÇøÀïÃæ£¬¶ø¸ºÔð½«Êý¾Ý´«Ë͵½Í¨Ñ¶µÄÁíÒ»¶ËµÄÊÇÐÒé
¡£
(5)£ºsendº¯ÊýµÄ·µ»ØÇé¿ö£ºÈç¹ûlen > len1 Ö±½Ó·µ»ØSOCKET_ERROR; send½«Êý¾Ý´«Ë͵½Ì×½Ó×ÖsµÄ·¢ËÍ»º³åÇøÀ¶øÐÒéÔÚ´«ËÍÊý¾Ýʱ£¬³öÏÖÍøÂç¹ÊÕÏ£¬Ò²·µ»ØSOCKET_ERROR
2>£ºrecvº¯Êý(ͬ²½socket)
£¬ÔÐÍ£¬ int recv(SOCKET s, char FAR *buf, int len, int fags)
(1)£º²ÎÊý˵Ã÷£
Ïà¹ØÎĵµ£º
Ò»¡¢ ldconfig£º
¡¡¡¡LinuxϵͳÖУ¬ÎªÁËÈö¯Ì¬Á´½Ó¿âΪϵͳËù¹²Ïí£¬»¹ÐèÔËÐж¯Ì¬Á´½Ó¿âµÄ¹ÜÀíÃüÁî——ldconfig.
¡¡¡¡1. ldconfigÃüÁîµÄÓÃ;£ºÖ÷ÒªÊÇÔÚĬÈÏËÑѰĿ¼£¨/libºÍ/usr/lib£©ÒÔ¼°¶¯Ì¬¿âÅäÖÃÎļþ/etc/ld.so.confÄÚËùÁеÄĿ¼Ï£¬ËÑË÷³ö¿É¹²ÏíµÄ¶¯Ì¬Á´½Ó¿â£¨¸ñʽÈçǰ½éÉÜ£¬lib*.so*£©£¬½ø¶ø´´½¨³ö¶¯Ì¬×°È ......
×ªÔØ android sdk 1.5 °²×°ÓëÅäÖÃ
²Î¿¼ ubuntu 8.10 °²×° Android
1.ÏÂÔØandroid sdk
ÏÂÔØµØÖ·ÈçÏ£º
http://dl.google.com/android/android-sdk-windows-1.5_r2.zip
http://dl.google.com/android/android-sdk-linux_x86-1.5_r2.zip
2.
ÏÂÔØeclipse 3.4.2
°´¹Ù·½ÎĵµËµ£¬android sdk ¿ÉÒÔÔËÐÐÔÚ ......
×ölinux cÓïÑÔ¿ª·¢ÓÐһСÕó×ÓÁË£¬ÔÚÕâ±ß×Ô¼º×ܽáÁËЩÐĵã¬ÏàÐÅÄÜÈò»¶®µÃLinux±à³ÌµÄÈËÂýÂý²½ÈëLinuxµîÌá£ÓÐÈκβ»¶Ô»ò²»×¼È·Ö®´¦»¶ÓÌÖÂÛ¡£
1. °²×° linux ²Ù×÷ϵͳ
¼ÈȻҪѧϰlinuxϵÄcÓïÑÔ¿ª·¢£¬ÄÇô°²×°¸ölinux²Ù×÷ϵͳÊDZØÐëµÄ¡£½¨Òé°²×°Ubuntu£¬ÕâÊÇÎÒĿǰ¼û¹ý½çÃæ×îÓѺõÄlinux²Ù×÷ϵͳÁË¡£¹ØÓÚÈçºÎʹÓÃUbuntuÒ ......
#insmod ./driver_xx.ko
´Ëʱ#cat /proc/devices ÄÜ¿´µ½ driver_xx É豸
#mknod /dev/mygpio c 230 0 (230ÊÇÖ÷É豸ºÅ£¬0ÊÇ×ÓÉ豸ºÅ£©
{ÕâÀï¿ÉÒÔÐÞ¸ÄÉ豸Ãû³Æ,µ«ÊÇÒªºÍ²âÊÔ³ÌÐòÖÐÒ»Ö fd_pio = open(“/dev/mygpio”, O_RDWR);
×îºÃºÍregister_chrdev(MY_PIO_MAJOR, "mygpio", &my_pio_fops)ÖеÄÒ»ÖÂ}
ʹ ......
ÔÚ struct mntent ÖеijÉÔ±Óë /etc/fstab ÎļþÖеÄÌõÄ¿ÊÇÖ±½Ó¶ÔÓ¦µÄ¡£ËüµÄÄÚÈÝÈçÏ£º
struct mntent {
char *mnt_fsname; /* ¹ÒÔØµÄÎļþϵͳµÄÃû×Ö */
char *mnt_dir; /* ¹ÒÔØµã */
char *mnt_type; /* ÎļþϵͳÀàÐÍ£ºufs¡¢nfs µÈ */
char *mnt_opts; /* Ñ¡ÏÒÔ¶ ......