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)£º²ÎÊý˵Ã÷£
Ïà¹ØÎĵµ£º
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......
°ëÄêǰµÄÏûÏ¢ÁË¡£¡£ºÇºÇ¡£
Ê×ÏÈ·ÃÎÊ£ºwww.scootersoftware.com/
ÔÚdownloadÏÂÃæÕÒµ½¶ÔÓ¦µÄ°²×°°ü£¬Ðµİ汾Ŷ¡£
»òÕßÓÃwgetÒ²ÐÐÀ¡£¿´¿´°æ±¾µÄ¡£
ÏÂÔØºó°²×°¾ÍÐÐÁË¡£
È»ºóÄØ£¬
¸ù¾ÝÍøÉÏ˵µÄ£¬É¾³ýµô ~ ÏÂÃæµÄ .beyondcompare ¾ÍÄܺÍгµô30ÌìµÄÊÔÓÃÆÚ¡£²»¹ý£¬Ã¿¸ö30ÌìÀ´Ò»´Î..
rm -rf ~/.beyondcompare
ºÇºÇ¡£²»´íÀ² ......
#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; /* Ñ¡ÏÒÔ¶ ......