Linux Socket ѧϰ£¨Ê®£©
Linux Socket ѧϰ£¨Ê®£©
ÔÚÌ×½Ó¿ÚÉÏʹÓñê×¼I/O
ÔÚÇ°ÃæÕ½ڵÄÀý×Ó´úÂëÖÐÎÒÃÇÒѾʹÓÃÁËread(2)»òÊÇwrite(2)ϵͳµ÷ÓÃÔÚÌ×½Ó¿ÚÉÏÖ´ÐжÁÈ¡ºÍдÈë²Ù×÷¡£Õâ¸ö¹æÔòµÄÒ»¸öÀýÍâ¾ÍÊÇrecvfrom(2)ºÍsendto(2)º¯Êý£¬ÕâÁ½¸öº¯ÊýÓÃÀ´¶ÁдÊý¾Ý±¨¡£È»¶ø£¬Ê¹ÓÃreadºÍwritteº¯Êýµ÷ÓÃÈ´ÓÐһЩ³ÌÐòÉϵÄȱµã¡£
ÕâÒ»ÕÂÎÒÃǽ«»áÌÖÂÛÒÔÏÂÄÚÈÝ£º
ÈçºÎʹÓÃfdopen(3)½«Ò»¸öÌ×½Ó¿ÚÓëÒ»¸öFILEÁ÷Ïà¹ØÁª
ÈçºÎ´´½¨²¢¶ÁдFILEÁ÷
¹Ø±ÕÓëÌ×½Ó¿ÚÏà¹ØÁªµÄÁ÷µÄÎÊÌâ
ΪÎÒÃǵÄFILEÁ÷Ñ¡Ôñ²¢´´½¨ºÏÊʵĻº³å¼¼Êõ
ÖжÏϵͳµ÷ÓõÄÎÊÌâ
ÕÆÎÕÁËÕâЩÄÚÈݽ«ÎªÎÒÃÇÌṩ½â¾öÎÒÃÇÍøÂç³ÌÐòµÄ¶îÍâ·½·¨¡£
Àí½â±ê×¼I/OµÄÐèÒª
LinuxÖеÄstdio(3)³ÌÐò·ûºÏANSI C3.159-1989±ê×¼¡£Õâ¸ö½Ó¿ÚµÄ±ê×¼»¯¿ÉÒÔ°ïÖú³ÌÐò½«³ÌÐòÒÆÖ²µ½¶à¸öƽ̨¡£ÀýÈ磬µ±ÎÒÃÇÒª½«Ô´´úÂë´ÓÆäËûµÄUNIXÏµÍ³ÒÆÖ²µ½ÎÒÃÇ×Ô¼ºµÄLinuxƽ̨ʱ£¬Õâ¸ö³ÌÐò¶ÔÓÚÎÒÃÇÀ´ËµÒ²ÐíÓÐÓá£
stdio°ü±¾ÉíÊÇÓëreadºÍwritteµ÷ÓÃÏà³åÍ»¡£È»¶ø£¬ÎÒÃÇȴʹÓñê×¼µÄI/Oµ÷Óã¬ÒòΪ¸ù¾ÝÎÒÃdzÌÐòµÄÐèÒª£¬ËûÃÇ¿ÉÒÔ·½±ãµÄÿ´ÎΪÎÒÃÇÌṩһÐлòÊÇÒ»¸ö×Ö·û¡£ÀýÈ磬readµ÷Ó㬲¢²»»áΪÎÒÃǵijÌÐò·µ»ØÒ»¸öÎı¾ÐС£Ïà·´£¬ËûÃÇ·µ»Ø¾¡¿ÉÄܶàµÄÊý£¬ÉõÖÁÊǶàÐÐÎı¾¡£
µ±Ð´ÈëÌ×½Ó¿Úʱ£¬±ê×¼I/OÀý³Ì¿ÉÒÔÔÊÐíÎÒÃǵijÌÐòÿ´ÎдÈëÒ»¸ö×Ö·û£¬¶ø²»»áÔì³É´óµÄÄÚÈݸ²¸Ç¡£ÁíÒ»·½Ã棬ÿ´Îµ÷ÓÃwritteдÈëÒ»¸ö×Ö·û»¨·ÑÌ«´ó¡£±ê×¼I/Oº¯ÊýÔÊÐíÎÒÃǵijÌÐòʹÓúÏÊʵÄÊý¾Ýµ¥Ôª½øÐвÙ×÷¡£
stdioͬʱÎÒÃǵijÌÐòÌṩÁËÊý¾Ý»º³å¹¦ÄÜ£¬°üÀ¨ÊäÈëÓëÊä³ö¡£µ±Ê¹Óûº³å¹¦ÄÜ£¬¿ÉÒÔ¼«´óµÄ¸ÄÉÆÎÒÃdzÌÐòµÄÐÔÄÜ¡£²»ÐÒµÄÊÇ£¬»º³å»áΪijЩ¸ñʽµÄͨÐÅÔì³ÉÀ§ÄÑ£¬ËùÒÔ²¢²»ÊÇ×ÜÊÇʹÓûº³å¡£
ÔÚÕâÒ»ÕÂÎÒÃǼÙÉèÒѾÊìϤÁËstdioµÄ»ù±¾¹¦ÄÜ¡£Õâͨ³£ÊÇÔÚC³ÌÐò½Ì³Ì£¬Í¬Ê±Ò²ÊÇCÓïÑÔ±¾ÉíËù½ÌµÄÄÚÈÝ¡£ÏàÓ¦µÄ£¬ÕâÒ»ÕÂÎÒÃǽ«»áרעÓÚÎÒÃÇÓ¦ÃÜÇйØ×¢µÄ¶«Î÷£¬¶øÆäËûµÄһЩϸ΢µÄµØ·½²¢²»Ã÷ÏÔ£¬ÒòΪËûÊÊÓÃÓÚÌ×½Ó¿Ú±à³Ì¡£
½«Ò»¸öÌ×½Ó¿ÚÓëÒ»¸öÁ÷Ïà¹ØÁª
stdioÁ÷ÊÇÓÉFILE¿ØÖÆ¿éÀ´½øÐйÜÀíµÄ¡£ÀýÈ磬ÎÒÃÇÒ²ÐíÒѾ¶à´Î±àдÁËÈçÏÂËùʾµÄ´úÂ룺
FILE *in;
in = fopen(pathname,"r");
if ( in == NULL ) {
fprintf(stderr,"%s: opening %s for read.\n",strerror(errno),pathname);
exit(1);
}
ÔÚÕâ¸öÀý×ÓÖУ¬±äÁ¿pathnameËùÖ¸¶¨µÄÎļþ½«»á´ò¿ªÀ´¶Á¡£Èç¹ûopenµ÷Óóɹ¦£¬±äÁ¿in½«»á½ÓÊÕÒ»¸öÖ¸ÏòΪÎÒÃǹÜÀíÁ÷I/OµÄFILE½á¹¹¡£·ñÔò£¬±äÁ¿in½ÓÊÕÒ»¸öNULLÖ¸Õ룬¶øÎÒÃǵijÌÐòÒ²±ØÐë´¦Àí»òÊDZ¨¸æ
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
ÖÚËùÖÜÖª£¬ÏÖ´ú²Ù×÷ϵͳ¶¼ÊµÏÖÁË“ÐéÄâÄÚ´æ”ÕâÒ»¼¼Êõ£¬²»µ«ÔÚ¹¦ÄÜÉÏÍ»ÆÆÁËÎïÀíÄÚ´æµÄÏÞÖÆ£¬Ê¹³ÌÐò¿ÉÒÔ²Ù×Ý´óÓÚʵ¼ÊÎïÀíÄÚ´æµÄ¿Õ¼ä£¬¸üÖØÒªµÄÊÇ£¬“ÐéÄâÄÚ´æ”ÊǸôÀëÿ¸ö½ø³ÌµÄ°²È«±£»¤Íø£¬Ê¹Ã¿¸ö½ø³Ì¶¼²»ÊÜÆäËü³ÌÐòµÄ¸ÉÈÅ¡£
Swap¿Õ¼äµÄ×÷Óÿɼòµ¥ÃèÊöΪ£ºµ±ÏµÍ³µÄÎïÀíÄÚ´æ²»¹»ÓõÄʱºò£¬¾ÍÐèÒ ......
linuxÍøÂç²ÎÊýÖ÷ҪλÓÚÏÂÃæÁ½¸öĿ¼ÏÂ:/proc/sys/net/core/ºÍ/proc/sys/net/ipv4/, ÏÂÃæ·Ö±ð¶ÔÕâÁ½¸öĿ¼Ï³£ÓõöÍøÂç²ÎÊý×öÏÂ˵Ã÷:
1./proc/sys/net/core/
$ /proc/sys/net/core/somaxconn
listen()µÄĬÈϲÎÊý,¹ÒÆðÇëÇóµÄ×î´óÊýÁ¿.ĬÈÏÊÇ128.¶Ô·±Ã¦µÄ·þÎñÆ÷,Ôö¼Ó¸ÃÖµÓÐÖúÓÚÍøÂçÐÔÄÜ, ¿É²Î¿¼µÄÓÅ»¯Ö ......
Ó²/Èí¼þ»·¾³
»ùÓÚS3C2410µÄǶÈëʽϵͳ£¬COM1Á¬½ÓPC£¬COM2Á¬½ÓSIM300 GPRSÄ£¿é¡£
¸ÃϵͳÔËÐÐÔÚLinux 2.6.14²Ù×÷ϵͳÏ£¬Ê¹ÓÃpppÌ×¼þͨ¹ýSIM300½øÐÐPPP²¦ºÅ¡£
ÈÃLinuxÄÚºËÖ§³ÖPPP
½øÈëLinuxÄÚºËĿ¼£¬Ö´ÐÐ#make menuconfig
Network Device Support à
&nb ......