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

linuxÍøÂç±à³Ì

 ÍøÂç³ÌÐòºÍÆÕͨ³ÌÐò×î´óµÄÇø±ð¾ÍÊÇ,ÍøÂç³ÌÐòÊÇÓÉÁ½²¿·Ö×é³ÉµÄ--server/client.Ò»°ãÇé¿öÏÂ,ÊÇÏÈÔËÐÐserver¶ËÉϵijÌÐò,È»ºóµÈ´ýclient¶ËÉϵijÌÐòÔËÐв¢½¨Á¢Á¬½Ó,server¶ËÉϵijÌÐòÔÚÒ»¸ö¶Ë¿Ú¼àÌý,µÈ´ýclient¶Ë·¢À´µÄÇëÇó.
int socket(int domain,int type,int protocol)
domain:˵Ã÷ͨѶ³ÌÐòËùÔÚÖ÷»úËù²ÉÓõÄͨѶЭÒéÀà(AF_INETºÍAF_UNIXµÈ);AF_UNIXÖ»ÄÜÓÃÓÚµ¥Ò»µÄUNIXϵͳ½ø³Ì¼äͨѶ,AF_INETÊÇÕë¶ÔinternetµÄ,¿ÉÒÔÓÃÓÚÔ¶³ÌÖ÷»ú¼äµÄͨѶ;
type:ÍøÂç³ÌÐòËù²ÉÈ¡µÄͨѶЭÒé(SOCK_STREAMºÍSOCK_DGRAM);
protocl:Ëù²ÉÈ¡µÄЭÒé,Ò»°ãÉèÖÃΪ0¾Í¿ÉÒÔÁË,Ö÷»ú»á×Ô¶¯Ñ¡ÔñºÏÊʵÄЭÒé.
int bind(int sockfd,struct sockaddr * myaddr,int addrlen)
sockfd:ÊÇsocketµÄ·µ»ØµÄÎļþÃèÊö·û,ÓÃÓÚ¼àÌýµÄsocket;
addrlen:ÊÇsockaddr½á¹¹µÄ³¤¶È;
myaddr:ÊÇÒ»¸öÖ¸ÏòsockaddrµÄ½á¹¹ÌåµÄÖ¸Õë;
¶ÔÓÚsockaddr½á¹¹ÌåµÄ¶¨Òå:
struct sockaddr
{
    unsigned short as_family;
    char as_data[14];
}
ÓÉÓÚϵͳµÄ¼æÈÝÐÔ,ÓÃÁíÍâÒ»¸ö½á¹¹ÌåÌæ´ú,sockaddr_in:
struct sockaddr_in
{
   unsigned short sin_family;
   unsigned short sin_port;
   struct in_addr sin_addr;
   unsigned char sin_zero[8];
}
sin_addrÒ»°ãÊÇÉèÖÃΪINADDR_ANY,¿ÉÒÔ½ÓÊÜÈκÎÖ÷»úµÄͨѶ,sin_portÊÇÒª¼àÌýµÄ¶Ë¿Ú,bind()½«±¾µØ¶Ë¿ÚºÍsocket°ó¶¨ÔÚÒ»Æð,³É¹¦ºó·µ»Ø0,ʧ°Üʱ·µ»Ø-1,ºÍsocket()Ò»Ñù.
int listen(int sockfd,int queuelen)
sockfd:bind()µÄsocketÃèÊö·û,ÓÃÓÚ¼àÌýµÄsocketÃèÊö·û;
queuelen:µÈºòÅŶӵÄ×î´ó³¤¶È.listen()½«bind()µÄsocketÃèÊö·û±äΪ¼àÌýµÄÌ×½Ó×Ö,·µ»ØµÄÇé¿öºÍbind()Ò»Ñù.
int accept(int sockfd,struct sockaddr * addr,int addrlen)
sockfd:ÊÇlistenºóµÄÎļþÃèÊö·û;
addrºÍaddrlen:ÊǸøclient¶Ë³ÌÐòÌîдµÄ,·þÎñÆ÷Ö»Òª´«µÝÖ¸Õë¾Í¿ÉÒÔÁË;
bind(),listen()ºÍaccept()ÊÇ·þÎñ¶ËÓõĺ¯Êý,accept()º¯Êýµ÷ÓÃʱ,server¶Ë»áÒ»Ö±×èÈûµ½ÓÐÒ»¸öclient·¢³öÁËÁ¬½ÓÇëÇó,accept()³É¹¦Ê±·µ»Ø×îºóµÄ·þÎñÆ÷¶ËµÄÎļþÃèÊö·û,ÏÖÔÚ·þÎñÆ÷¶Ë¿ÉÒÔÏò¸ÃÃèÊö·ûдÐÅÏ¢ÁË.ʧ°Üʱ·µ»Ø-1.
int connect(int sockfd,struct sockaddr *servaddr,int addrlen)
sockfd:socket()·µ»ØµÄÎļþÃèÊö·û;
servaddr:´æ´¢ÁËserver¶ËµÄÁ¬½ÓÐÅÏ¢,ÀïÃæµÄsin_familyÊÇ·þÎñÆ÷¶ËµÄµØÖ·
addrlen:servaddrµÄ³¤¶È;
connect()ÊÇ


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

linuxÏÂApacheÆô¶¯Ê§°ÜµÄһЩÌå»á

ÏµÍ³ÖØÆôºó·¢ÏÖ£¬ApacheÆô¶¯Ê§°Ü
±¨´íÈçÏ£º
# ./apachectl start
(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs
²éÁËÏÂ80
#netstat -Inp|grep 80
tcp        0 &n ......

LinuxÍø¹Üѧϰ±Ê¼Ç£¨12£©¹ØÓÚLinuxµÄÄں˰²È«

LinuxÄÚºËÊÇ×÷ΪMonolithic architecture (µ¥ÄÚºËÌåϵ½á¹¹) ¶øÊµÏֵģ¬ÎªÁË»ñµÃ Microkernel architecture (΢ÄÚºËÌåϵ½á¹¹) ´øÀ´µÄ¿ÉÀ©Õ¹ÐԺͿÉά»¤ÐÔ£¬Linux ÒýÈëÁËÄ£¿é (module) »úÖÆ£¬(±È½Ï׼ȷµÄ˵·¨ÊÇ Loadable Kernel Module, ¿É×°ÔØÄÚºËÄ£¿é)£¬½å´ËÀ´±£Ö¤Äں˵Ľô´ÕÐÔºÍLinux±¾Éí¹ÌÓеĵ¥Ò»Ìåϵ½á¹¹µÄÓŵã—&# ......

Linux USBÇý¶¯¿ò¼Ü·ÖÎö(ת£©

Linux USBÇý¶¯¿ò¼Ü·ÖÎö£¨Ò»£©
    ³õ´Î½Ó´¥ÓëOSÏà¹ØµÄÉ豸Çý¶¯±àд£¬¸Ð¾õ»¹Í¦ÓÐÒâ˼µÄ£¬ÎªÁ˲»ÖÁÓÚÍüµô¿´¹ýµÄ¶«Î÷£¬±Ê¼Ç¸ú×ܽᵱȻ²»¿Éȱ£¬¸üºÎ¿öÎÒ¾ö¶¨ÎªÇ¶ÈëʽÂôÃüÁË¡£ºÃ£¬ÑÔ¹éÕý´«£¬ÎÒ˵һ˵Õâ¶Îʱ¼äµÄÊÕ»ñ£¬¸ú´ó¼Ò·ÖÏíÒ»ÏÂLinuxµÄÇý¶¯¿ª·¢¡£µ«Õâ´ÎÖ»ÏÈÕë¶ÔLinuxµÄUSB×Óϵͳ×÷·ÖÎö£¬ÒòΪÖÜÎåÑÐÌÖÀϰå´ß» ......

¹«¿ª ¡¶Unix/LinuxϵÄCurses¿â¿ª·¢Ö¸ÄÏ¡·È«ÊéÄÚÈÝ

 ¡¶Unix/LinuxϵÄCurses¿â¿ª·¢Ö¸ÄÏ¡·ÓÚ2003ÄêÓÉÇ廪³ö°æÉç³ö°æ£¬ºÏͬÔÚ2008Äê½áÊø¡£ÕâÊǹúÄÚΨһµÄÒ»±¾¹ØÓÚCurses¿â¿ª·¢Ö¸ÄϵÄͼÊé¡£±¾ÊéÎÞÒâÔٰ棬Òò´ËÌØÒ⹫¿ªÈ«ÊéÄÚÈÝ£¬ËùÓеÄÕ½ڻáÖ𽥷ųö¡£Ï£Íû¶Ô´ó¼ÒÓÐÓᣠ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ