Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linuxϵͳµ÷Óà recv/recvfrom/recvmsgº¯ÊýÏê½â

¡¾recv/recvfrom/recvmsgϵͳµ÷Óá¿ 
¹¦ÄÜÃèÊö£º
´ÓÌ×½Ó×ÖÉϽÓÊÕÒ»¸öÏûÏ¢¡£¶ÔÓÚrecvfrom ºÍ recvmsg£¬¿ÉͬʱӦÓÃÓÚÃæÏòÁ¬½ÓµÄºÍÎÞÁ¬½ÓµÄÌ×½Ó×Ö¡£recvÒ»°ãÖ»ÓÃÔÚÃæÏòÁ¬½ÓµÄÌ×½Ó×Ö£¬¼¸ºõµÈͬÓÚrecvfrom£¬Ö»Òª½«recvfromµÄµÚÎå¸ö²ÎÊýÉèÖÃNULL¡£
Èç¹ûÏûϢ̫´ó£¬ÎÞ·¨ÍêÕû´æ·ÅÔÚËùÌṩµÄ»º³åÇø£¬¸ù¾Ý²»Í¬µÄÌ×½Ó×Ö£¬¶àÓàµÄ×ֽڻᶪÆú¡£
¼ÙÈçÌ×½Ó×ÖÉÏûÓÐÏûÏ¢¿ÉÒÔ¶ÁÈ¡£¬³ýÁËÌ×½Ó×ÖÒѱ»ÉèÖÃΪ·Ç×èÈûģʽ£¬·ñÔò½ÓÊÕµ÷ÓûáµÈ´ýÏûÏ¢µÄµ½À´¡£
Ó÷¨£º
#include <sys/types.h>
#include <sys/socket.h>
ssize_t recv(int sock, void *buf, size_t len, int flags);
ssize_t recvfrom(int sock, void *buf, size_t len, int flags,
     struct sockaddr *from, socklen_t *fromlen);
ssize_t recvmsg(int sock, struct msghdr *msg, int flags);
²ÎÊý£º  
sock£ºË÷Òý½«Òª´ÓÆä½ÓÊÕÊý¾ÝµÄÌ×½Ó×Ö¡£
buf£º´æ·ÅÏûÏ¢½ÓÊÕºóµÄ»º³åÇø¡£
len£ºbufËùÖ¸»º³åÇøµÄÈÝÁ¿¡£
flags£ºÊÇÒÔÏÂÒ»¸ö»òÕß¶à¸ö±êÖ¾µÄ×éºÏÌ壬¿Éͨ¹ýor²Ù×÷Á¬ÔÚÒ»Æð
MSG_DONTWAIT£º²Ù×÷²»»á±»×èÈû¡£
MSG_ERRQUEUE£º ָʾӦ¸Ã´ÓÌ×½Ó×ֵĴíÎó¶ÓÁÐÉϽÓÊÕ´íÎóÖµ£¬ÒÀ¾Ý²»Í¬µÄЭÒ飬´íÎóÖµÒÔijÖÖ¸¨×ôÐÔÏûÏ¢µÄ·½Ê½´«µÝ½øÀ´£¬ ʹÓÃÕßÓ¦¸ÃÌṩ×ã¹»´óµÄ»º³åÇø¡£µ¼Ö´íÎóµÄÔ­·â°üͨ¹ýmsg_iovec×÷Ϊһ°ãµÄÊý¾ÝÀ´´«µÝ¡£µ¼Ö´íÎóµÄÊý¾Ý±¨Ô­Ä¿±êµØÖ·×÷Ϊmsg_name±»Ìṩ¡£ ´íÎóÒÔsock_extended_err½á¹¹ÐÎ̬±»Ê¹Ó㬶¨ÒåÈçÏÂ
#define SO_EE_ORIGIN_NONE    0
#define SO_EE_ORIGIN_LOCAL   1
#define SO_EE_ORIGIN_ICMP    2
#define SO_EE_ORIGIN_ICMP6   3
struct sock_extended_err
{
    u_int32_t ee_errno;   /* error number */
    u_int8_t ee_origin; /* where the error originated */
    u_int8_t ee_type;    /* type */
    u_int8_t ee_code;    /* code */
    u_int8_t ee_pad;
    u_int32_t ee_info;    /* additional information */
    u_int32_t ee_data;    /* other data */
    /* More data may follow */
};
MSG_PEEK£ºÖ¸Ê¾Êý¾Ý½ÓÊÕºó£¬ÔÚ½ÓÊÕ¶ÓÁÐÖÐ


Ïà¹ØÎĵµ£º

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â

Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......

Linux±à³Ì

Ò»¡¢LinuxÉè¼ÆÌØµã£º¶àÓû§£¨¶à¸öÓû§¿ÉÒÔͬʱµÇ¼£¬Í¬Ò»Óû§¿ÉÒԵǼ¶à´Î£©£»¶àÈÎÎñ£¨Í¬Ò»³ÌÐò¿ÉÒÔÓжà¸öÏ̻߳ò½ø³Ì²¢·¢Ö´ÐУ©£»·Öʱ¡£
¶þ¡¢C¿ª·¢»·¾³£º¿ª·¢¹¤¾ß£¨°üÀ¨±àÒëÆ÷¡¢Á¬½ÓÆ÷¡¢gcc£©¡¢¹¤³Ì¹ÜÀíÈí¼þ£¨make£©¡¢±à¼­Æ÷¡¢·ÖÎöµ÷ÊÔ¹¤¾ßgdb¡¢º¯Êý¿â¡¢°æ±¾¿ØÖÆÏµÍ³CVS¡££¨Perl²»ÐèÒª±àÒ룩¡£
Èý¡¢ÔÚÏßÎĵµ£º
1.manpage ......

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÖжÏÓëÒì³£3

³õʼ»¯ÖжÏÃèÊö·û±í
ÄÚºËÆôÓÃÖжÏÒÔǰ£¬±ØÐë°Ñidt±íµÄ³õʼµØÖ·×°µ½idtr¼Ä´æÆ÷£¬²¢³õʼ»¯±íÖеÄÿһÏî¡£ÕâÏ×÷ÊÇÔÚ³õʼ»¯ÏµÍ³Ê±Íê³É¡£
intÖ¸ÁîÔÊÐíÓû§Ì¬½ø³Ì·¢³öÒ»¸öÖжÏÐźţ¬ÆäÖµ¿ÉÒÔÊÇ0-255µÄÈÎÒâÒ»¸öÏòÁ¿¡£Òò´Ë¡£ÎªÁË·ÀÖ¹Óû§Í¨¹ýintÖ¸ÁîÄ£Äâ·Ç·¨µÄÖжϺÍÒì³££¬idtµÄ³õʼ»¯±ØÐë·Ç³£Ð¡ÐÄ¡£Õâ¿ÉÒÔͨ¹ý°ÑÖжϻòÕßÏÝÚåà ......

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®ÖжÏÓëÒì³£4

IDTµÄ³õ²½³õʼ»¯
ÔÚʵģʽʱ£¬idt±»³õʼ»¯²¢ÓÉbiosÀý³ÌʹÓá£Ò»µ©linux½Ó¹Ü£¬idt¾Í±»ÒƵ½ramµÄÁíÒ»¸öÇøÓò£¬²¢½øÐеڶþ´Î³õʼ»¯£¬ÒòΪlinuxûÓÐÀûÓÃÈκÎbiosÀý³Ì¡£
IDT´æ·ÅÔÚidt_table±íÖУ¬ÓÐ256¸ö±íÏî¡£6×Ö½ÚµÄidt_descr±äÁ¿Ö¸¶¨ÁËidtµÄ´óСºÍËüµÄµØÖ·£¬Ö»Óе±ÄÚºËÓÃlidt»ã±àÖ¸Áî³õʼ»¯idtr¼Ä´æÆ÷ʱ²ÅÓõ½Õâ¸ö±äÁ¿¡£
ÔÚ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ