linux socket Ïê½â
Í·Îļþ£ºsys/socket.h
Ïà¹Ø½á¹¹Ì壺
struct sockaddr
{
unsigned short sa_family; //µØÖ·×å
char sa_data[14]; //14×Ö½ÚÐÒ鵨ַ
};
struct sockaddr_in
{
short int sin_family; //µØÖ·×å
unsigned short int sin_port; //¶Ë¿ÚºÅ
struct in_addr sin_addr; //IPµØÖ·
unsigned char sin_zero[8]; //Ìî³ä0ÒÔ±£³ÖÓëstruct sockaddrͬÑù´óС
};
struct in_addr
{
unsigned long s_addr; // that’s a 32-bit long, or 4 bytes
};
×¢£ºÕâÁ½¸öµØÖ·ÀàÐͽṹÌåÔÚÍ·ÎļþÖж¨Òå¡£
Ïà¹Øº¯Êý£º
<´ò¿ªÌ×½Ó×Ö>
int socket(int af,int type,int protocol); //·µ»ØsocketÌ×½Ó×Ö£¬ÔÚºóÃæµÄµ÷ÓÃʹÓÃËü¡£
afÖ¸¶¨Í¨ÐÅ·¢ÉúÇøÓò£¨µØÖ·×壩
UNIXϵͳÓУºAF_UNIX,AF_INET,AF_NSµÈ¡£
DOS¡¢WINDOWSÖÐÖ§³Ö£ºAF_INET£¨Íø¼ÊÍøÇøÓò£©
×¢£ºµØÖ·×åÓëÐÒé×åÏàͬ¡£
typeΪSOCK_STREAM£¨½¨Á¢TCP/IPÁ¬½ÓµÄÁ÷ʽÌ×½Ó×Ö£©»òSOCK_DGRAM£¨½¨Á¢ÎÞÁ¬½ÓµÄUDPÊý¾Ý±¨Ì×½Ó×Ö£©
×¢£º½øÐÐÊý¾Ý±¨·½Ê½µÄÊý¾Ý´«Êäsendto()ºÍrecvfrom()ʱҪÓÃSOCK_DGRAM ²»È»»á²úÉú´íÎó¡£
protocolͨ³£Îª0
<Ö¸¶¨±¾µØµØÖ·>
int bind(int sockfd,struct sockaddr *my_addr,int addrlen);
sockfdΪsocket·µ»ØµÄÌ×½Ó×Ö¡£
my_addrÖ¸Ïò°üº¬±¾»úIPµØÖ·ºÍ¶Ë¿ÚºÅµÈÐÅÏ¢µÄsockaddrÀàÐÍÖ¸Õë¡£
addrlenͨ³£Îªsizeof(struct sockaddr)
×¢£º¶¨Òå±¾»úµØÖ·Í¨³£Îª
struct sockaddr_in my_addr;
... ...
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(Ö¸¶¨¶Ë¿ÚºÅ); //htons()½øÐÐ×Ö½Ú˳Ðòת»»£¬×ª»»³ÉÍøÂç×Ö½ÚÓÅÏÈ˳Ðò¡£
my_addr.sin_addr.s_addr=INADDR_ANY; //INADDR_ANY×Ô¶¯»ñÈ¡±¾»úIPµØÖ·
<¼àÌýÇëÇó>
int listen(int sockfd,int backlog);
backlogÖ¸¶¨ÔÚÇëÇó¶ÓÁÐÖÐÔÊÐíµÄ×î´óÇëÇóÊý£¬½øÈë¶ÓÁеÄÇëÇ󽫵ȴýaccept()ËüÃÇ¡£
×¢£º·þÎñÆ÷³ÌÐòµÄͨ³£Ö´ÐÐ˳ÐòΪ sockfd=socket( ... ... ); bind(sockfd, ..., ...); listen(sockfd, ..., ...);
ÓÃSOCK_STREAMģʽÐèÒª accept()Á¬½ÓÇëÇó¡£
<½ÓÊÜÁ¬½ÓÇëÇó>
int accept(int sockfd,st
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ£º
±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾Ñ飨Õâ¸ö»¹µ ......
Ê×ÏÈÒªµ¼ÈëÕâЩͷÎļþ
#include
#include
#include
#include
#include
#include
È»ºó¿´Ò»ÏÂʵ¼ÊµÄ²Ù×÷
1¡¢²é¿´ÎļþϵͳÐÅÏ¢
asmlinkage long get_files_info(char * filesystem_type)//È¡µÃµ±Ç°Ä¿Â¼µÄÎļþϵͳÐÅÏ¢
{
struct fs_struct *fs ;
struct vfsmount *mnt ;
......
1. ÍøÂç×Óϵͳ
* ϵͳµ÷ÓýӿÚ
* ÐÒéÎ޹زã
* ÐÒéʵÏÖ²ã
* Çý¶¯Î޹زã
* Çý¶¯³ÌÐò²ã
×¢£ºµ÷ÓýӿÚ<->ÐÒé²ã<->Çý¶¯³ÌÐò
2. Íø¿¨Çý¶¯³ÌÐò
* λÓÚÊý¾ÝÁ´Â·²ã
3. ¹Ø¼üÊý¾Ý½á¹¹
* struct net_device
* struct sk_buffer
4. ³õʼ»¯
* Éú³Énet_device£¬²¢³õʼ»¯Æä³ÉÔ±
* ¸ù¾ÝÐèÒª£¬¶ÔÍø¿¨×ÔÉí¼Ä´æÆ÷ ......
tarÃüÁ tar [-cxtzjvfpPN] ÎļþÓëĿ¼ ....
# f+ E' `# d' W( {²ÎÊý£º & e( U# Y4 x; c$ b2 O; j/ p
-c £º½¨Á¢Ò»¸öѹËõÎļþµÄ²ÎÊýÖ¸Áî(create µÄÒâ˼)£»
. E' {. v5 ^ \' v3 O5 H, C' @- p& ^-x £º½â¿ªÒ»¸öѹËõÎļþµÄ²ÎÊýÖ¸Á 3 |& u2 z: k( A# ?% c
-t £º²é¿´ tarfile ÀïÃæµÄÎļþ£¡
9 ......