Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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±à³Ì

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

Linux×öÒ»¸ö¹¦ÄÜÍ걸µÄ·ÓÉÆ÷

±¾ÎÄÖ÷Òª½éÉÜÈçºÎÓÃLinux×öÒ»¸ö¹¦ÄÜÍ걸µÄ·ÓÉÆ÷£¬ÕâÀォÖ÷Òª½éÉܾ²Ì¬Â·ÓÉÆ÷ºÍ¶¯Ì¬Â·ÓÉÆ÷µÄÅäÖ㬵«²»°üÀ¨IPαװ»òÕß˵¹«ÓÃÒ»¸öIPµØÖ··ÃÎÊÍâÃæÍøÂçµÈÎÊÌâ¡£ÆäÒѾ­²»ÊôÓÚ±¾Ö÷ÌâÌÖÂ۵ķ¶Î§£¬Çë²Î¿¼ÆäËûÈç·À»ðǽµÄÅäÖõȵÄÄÚÈÝ¡£
LRP(Linux Router Project)ÒѾ­³ÉÁ¢ÁËÓкü¸ÄêµÄʱ¼äÁË¡£Õâ¸ö¼Æ»®µÄÄ¿µÄÊÇÀûÓÃLinux²Ù×÷ϵͳ½«À ......

WinCE EbootÖмÓÈëLinux bootµÄÖ§³Ö

Index: flash.c
===================================================================
--- flash.c    (revision 1804)
+++ flash.c    (working copy)
@@ -26,6 +26,8 @@
#include "ebootnand.h"
#include "ll_nand.h"
#includ ......

Linux·¢ËÍarpÇëÇóÓë½ÓÊÕarpÏìÓ¦

Linux ÖлñµÃ±¾»úÍø¿¨MACµØÖ·ºÜ¼òµ¥£¬ioctl()¾ÍOK¡£¿ÉÈçºÎ»ñµÃ¾ÖÓòÍøÆäËûÖ÷»úµÄMACµØÖ·ÄØ…Á´Â·²ã¹ã²¥ARPÇëÇó£¬È»ºó½ÓÊÕARPÏìÓ¦¡£ÊµÏÖ½é¸ö¹¦ÄÜÆäʵÒÑÓÐÏÖ³ÉÈý·½¿â¿ÉÓã¬Èçlibnet¡£²»¹ýÏë¼ÓÉî¶ÔЭÒéµÄÀí½âºÍLinuxÍøÂç±à³ÌAPIµÄÀí½â£¬jiayi »¹ÊǾö¶¨ÓÃLinuxµÄPF_PACKET×Ô¼ºÊµÏÖ£¬¸Ä°¡¸Ä£¬ÖÕÓڳɹ¦¡«ÒÔÏÂÊÇ´óÌå˼·
1. ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ