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
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
Ê×ÏÈÒªµ¼ÈëÕâЩͷÎļþ
#include
#include
#include
#include
#include
#include
È»ºó¿´Ò»ÏÂʵ¼ÊµÄ²Ù×÷
1¡¢²é¿´ÎļþϵͳÐÅÏ¢
asmlinkage long get_files_info(char * filesystem_type)//È¡µÃµ±Ç°Ä¿Â¼µÄÎļþϵͳÐÅÏ¢
{
struct fs_struct *fs ;
struct vfsmount *mnt ;
......
¹¦ÄÜÃèÊö£º
»ñÈ¡»òÕßÉèÖÃÓëij¸öÌ×½Ó×Ö¹ØÁªµÄÑ¡ ÏѡÏî¿ÉÄÜ´æÔÚÓÚ¶à²ãÐÒéÖУ¬ËüÃÇ×Ü»á³öÏÖÔÚ×îÉÏÃæµÄÌ×½Ó×ֲ㡣µ±²Ù×÷Ì×½Ó×ÖÑ¡Ïîʱ£¬Ñ¡ÏîλÓڵIJãºÍÑ¡ÏîµÄÃû³Æ±ØÐë¸ø³ö¡£ÎªÁ˲Ù×÷Ì×½Ó×Ö²ãµÄÑ¡ÏӦ¸Ã ½«²ãµÄÖµÖ¸¶¨ÎªSOL_SOCKET¡£ÎªÁ˲Ù×÷ÆäËü²ãµÄÑ¡Ï¿ØÖÆÑ¡ÏîµÄºÏÊÊÐÒéº ......