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

Òѽâ¾ö£ºLinuxÖÐÓÃsocketʵÏÖÊÓÆµ¡¢ÒôƵµÄͬ²½´«Êä

Òѽâ¾ö£ºLinuxÖÐÓÃsocketʵÏÖÊÓÆµ¡¢ÒôƵµÄͬ²½´«Êä
Posted on ÐÇÆÚËÄ, 4ÔÂ 23rd, 2009 at 1:55 ÉÏÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/04/23/Òѽâ¾ö£ºlinuxÏÂÓÃsocketʵÏÖÊÓÆµ¡¢ÒôƵµÄͬ²½´«Êä/
ÔÚ֮ǰµÄһƪÎÄÕÂÀïÒѾ­Ìáµ½¹ýÊÓÆµ¡¢ÉùÒôµÄͬ²½´«ÊäÎÊÌ⣬µ±Ê±ÏëÁ˼¸¸ö·½°¸£¬µ±È»¶¼ÊǺܲ»³ÉÊìµÄÏë·¨¡£ÓÐЩÊÂÇéÖ»ÓÐ×öÁ˲ÅÖªµÀµ½µ×Ðв»ÐеÃͨ£¬ÓÐʱºòʵ¼ÊÇé¿ö±ÈÏëÏóµÃÒª¼òµ¥¡£
1¡¢´´½¨Á½¸öÏß³Ì-ÊÓÆµÏ̡߳¢ÒôƵÏ̡߳£
¹ØÓÚÊÓÆµ²¿·ÖµÄʵÏֲο¼ÕâÀÒôƵ²¿·ÖµÄʵÏֲο¼ÕâÀï¡£ÆäÖУ¬ÊÓÆµÊµÏÖµ¥Ïò´«Ê䣬ÒôƵʵÏÖË«Ïò´«Êä¡£Á½¸öÏß³ÌÖ®¼ä²¢Ã»ÓÐ×öÈκÎÀàËÆÓÚ“ÐźÅÁ¿“µÄͬ²½´ëÊ©¡£ÒòΪֻҪ±£Ö¤ÊÓÆµºÍÒôƵÊǔͬʱ“·¢ËÍ£¬ÔÚ½ÓÊն˾ͿÉÒÔ”¼¸ºõ“ͬʱÏÔʾºÍ²¥·Å¡£ÒòΪÊÇÔÚ¾ÖÓòÍøÖд«Ê䣬ËÙ¶ÈÓб£Ö¤£¬ÔÚÒªÇó²»ÊǺܿÁ¿ÌµÄÇé¿öÏ£¬Í¬²½ÊÇ¿ÉÒÔÂú×ãµÄ¡£¶øÇÒ£¬ÊÂʵҲ֤Ã÷ÁË£¬ÕâÖÖºÜÆÓËØµÄ·½·¨ÊÇÐеÃͨµÄ¡£
/*creat video and audio thread*/
pthread_create(&enc_tid,NULL,(void *)video_send, (void *)&arg);
//ÊÓÆµµÄÏêϸ½éÉܲο´ÕâÀï
pthread_create(&audio_tid,NULL,(void *)audio_encdec,(void *)&sockfd_audio);
//ÉùÒôµÄÏêϸ½éÉܲο´ÕâÀï
2¡¢¼ÈȻҪÓÃÁ½¸öÏß³ÌÀ´ÊµÏÖ´«Ê䣬һ¸öºÜ×ÔÈ»µÄÎÊÌâ¾ÍÊÇ£ºÊÓÆµÁ÷ºÍÒôƵÁ÷ÊÇÈçºÎ´¦ÀíµÄ£¿´ð°¸ÊÇ£º½¨Á¢ÓÃÁ½Ìõ¶ÀÁ¢µÄÁ÷£¬Ò»Ìõ´«ÊäÊÓÆµ£¬Ò»Ìõ´«ÊäÉùÒô¡£ÎÒÃÇÖªµÀ£¬socketÔÚ·þÎñÆ÷¶Ë´´½¨Ò»¸ösockfd_serverÖ®ºó£¬Õâ¸ösockfd_server¿ÉÒÔÒ»Ö±¼àÌýÊÇ·ñÓÐÁ¬½ÓÇëÇó¡£Ò²¾ÍÊÇ˵£¬ÎÒÃÇ¿ÉÒÔÔÚ·þÎñÆ÷¶Ë´´½¨Ò»¸öserver_fd£¬È»ºóÁ¬½Ó¿Í»§¶ËµÄÁ½¸öÁ¬½ÓÇëÇó-ÊÓÆµ¡¢ÒôƵ¡£
»¹ÊÇ´úÂë±íʾ¸üÖ±¹Û£º
·¢ËͶˣº£¨×÷Ϊ·þÎñÆ÷¶Ë£¬ºÍÉϴαÈ×öÁ˵÷»»£©
//socketÃèÊö·û
#define port 8000
int sockfd_server;
int sockfd_video;
int sockfd_audio;
//server_initº¯ÊýÒ²¾ÍÊÇÕâÀïµÄrecv_init£¬Ö»ÊÇ»»Á˸öÃû×Ö¡£
sockfd_video=server_init(&sockfd_server,port);
//sockfd_server¼ÌÐø¼àÌýÏÂÒ»¸öÇëÇó¡£
sockfd_audio=accept(sockfd_server,(struct sockaddr *)NULL,NULL);
½ÓÊÕ¶Ë£º£¨×÷Ϊ¿Í»§¶Ë£¬Í¬Ñù×öÁ˵÷»»£©
#define port 8000
int err;
int sockfd_video;
int sockfd_audio;
const char *host_addr=”192.168.1.110″;
/*video socket init */
err=client_init(&sockfd_video,host_addr,port);
if(err==-1){
printf(”socket_video init failed!\


Ïà¹ØÎĵµ£º

Linuxϵͳµ÷Óà recv/recvfrom/recvmsgº¯ÊýÏê½â

¡¾recv/recvfrom/recvmsgϵͳµ÷Óá¿ 
¹¦ÄÜÃèÊö£º
´ÓÌ×½Ó×ÖÉϽÓÊÕÒ»¸öÏûÏ¢¡£¶ÔÓÚrecvfrom ºÍ recvmsg£¬¿ÉͬʱӦÓÃÓÚÃæÏòÁ¬½ÓµÄºÍÎÞÁ¬½ÓµÄÌ×½Ó×Ö¡£recvÒ»°ãÖ»ÓÃÔÚÃæÏòÁ¬½ÓµÄÌ×½Ó×Ö£¬¼¸ºõµÈͬÓÚrecvfrom£¬Ö»Òª½«recvfromµÄµÚÎå¸ö²ÎÊýÉèÖÃNULL¡£
Èç¹ûÏûϢ̫´ó£¬ÎÞ·¨ÍêÕû´æ·ÅÔÚËùÌṩµÄ»º³åÇø£¬¸ù¾Ý²»Í¬µÄÌ×½Ó×Ö£¬¶àÓà ......

ÍõÛóÍÆ¼öµÄһЩLinux¹¤¾ß


Shell: bash¡£Ëü½áºÏÁË csh ºÍ ksh µÄÓŵ㣬²¢ÇÒÓÐ readline ¹¦ÄÜ£¬Äã¿ÉÒÔËæÒâ°ó¶¨×Ô¼ºµÄ¼üÅÌ¡£
±à¼­Æ÷£º VIM, Emacs¡£
³ÌÐò¿ª·¢£º GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...
ÂÛÎÄ£¬»ÃµÆ¹¤¾ß£ºLaTeX, ConTeXt
»æÍ¼¹¤¾ß£ºMetaPost¡£Õâ¸öÓïÑÔ̫ǿÁË£¬ÒÔÖÁÓÚÎÒÖ»ÓÃËüÁË¡£Äã²»ÊìϤµÄ»°¿ÉÒÔÓÃxfig,dia À´ ......

linuxÄÚ´æ³Ø

ÄÚ´æ³Ø(memory pool) ÊÇlinux2.6µÄÒ»¸öеÄÌØÐÔ¡£»ù±¾ÉϽ«£¬Ò»¸öÄÚ´æ³ØÔÊÐíÒ»¸öÄں˳ɷ֣¬Èç¿éÉ豸×Óϵͳ£¬½öÔÚÄÚ´æ²»×ãµÄ½ô¼±Çé¿öÏ·ÖÅäһЩ¶¯Ì¬ÄÚ´æÀ´Ê¹Óá£
ÄÚ´æ³ØÊǶ¯Ì¬ÄÚ´æµÄ´¢±¸£¬Ö»Äܱ»Ìض¨µÄÄں˳ɷ֣¨¼´³ØµÄ“ÓµÓÐÕß”£©Ê¹Óá£ÓµÓÐÕßͨ³£²»Ê¹Óô¢±¸£»µ«ÊÇ£¬Èç¹û¶¯Ì¬ÄÚ´æ±äµÃ¼«ÆäÏ¡ÓÐÒÔÖÁÓÚËùÓÐÆÕͨÄÚ
......

Linux»ã±àÓï·¨¿ª·¢

»ã±àÓïÑÔµÄÓŵãÊÇËٶȿ죬¿ÉÒÔÖ±½Ó¶ÔÓ²¼þ½øÐвÙ×÷£¬Õâ¶ÔÖîÈçͼÐδ¦ÀíµÈ¹Ø¼üÓ¦ÓÃÊǷdz£ÖØÒªµÄ¡£Linux ÊÇÒ»¸öÓà C ÓïÑÔ¿ª·¢µÄ²Ù×÷ϵͳ£¬ÕâʹµÃºÜ¶à³ÌÐòÔ±¿ªÊ¼Íü¼ÇÔÚ Linux Öл¹¿ÉÒÔÖ±½ÓʹÓûã±àÕâÒ»µ×²ãÓïÑÔÀ´ÓÅ»¯³ÌÐòµÄÐÔÄÜ¡£±¾ÎÄΪÄÇЩÔÚLinux ƽ̨Éϱàд»ã±à´úÂëµÄ³ÌÐòÔ±ÌṩָÄÏ£¬½éÉÜ Linux »ã±àÓïÑÔµÄÓï·¨¸ñʽºÍ¿ª·¢¹¤¾ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ