Òѽâ¾ö£º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ϵͳ°²×°Í꣬ÒÔºóͨ¹ýÃüÁîģʽÅäÖÃÍø¿¨IP¡£ÅäÖÃÎļþͨ³£ÊÇ/etc/sysconfig/network-scripts/ifcfg-interface-name
1.ÅäÖÃÍø¿¨IPµØÖ·
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #µÚ¶þ¿éÍø¿¨£ºvi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0 #ÎïÀíÉ豸Ãû
IPADDR=192.168.1.10 #IPµØÖ·
NETMASK=255. ......
ÕâôÄã¾ÍÐèÒªÐÞ¸ÄÒ»ÏÂ×Ö·û±àÂëµÄÅäÖá£
# cd /etc/sysconfig
# vi i18n
-------------------ÎļþÄÚÈÝ------------------
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
-----------------------£ºqw ±£´æÍ ......
cron ÊÇlinuxµÄÄÚÖ÷þÎñ£¬µ«Ëü²»×Ô¶¯ÆðÀ´£¬¿ÉÒÔÓÃÒÔÏµķ½·¨Æô¶¯¡¢¹Ø±ÕÕâ¸ö·þÎñ£º
ÒýÓÃ:
/sbin/service crond start //Æô¶¯·þÎñ
/sbin/service crond stop //¹Ø±Õ·þÎñ
/sbin/service crond restart //ÖØÆô·þÎñ
/sbin/service crond reload //ÖØÐÂÔØÈëÅäÖÃ
//============= ......
ÕªÒª: ±¾ÎÄÏê½âÁËÄÚºËÖÐÃæÏò¶ÔÏóµÄlist½á¹¹µÄÔÀí£¬ÒÔ¼°ÈçºÎÒÔlistΪÄÚǶ¶ÔÏóÀ´¹¹Ôì×Ô¼ºµÄÁ´±í½á¹¹£¬ÈçºÎ´ÓÄÚǶlist¶ÔÏó»ñµÃ×Ô¶¨ÒåµÄ¶ÔÏóÖ¸Õ룻̽ÌÖÁ˸÷ÖÖºê»òÕߺ¯ÊýµÄÏêϸʹÓ÷½·¨¼°ÔõÑùÒÔͨÓÃlist½á¹¹À´²Ù×÷×Ô¶¨Òå¶ÔÏó¡£
¹Ø¼ü×Ö:Ë«ÏòÑ»·Á´±í£¬list£¬list_entry£¬typeof£¬containerof£¬list_for_each,list_for_each ......
linuxÏß³Ì(pthread)±à³ÌÖеÄsegmentation fault£¡£¡
Posted on ÐÇÆÚÎå, 3ÔÂ 27th, 2009 at 10:28 ÏÂÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/03/27/pthread-segmentation-fault/
¼Ìsocket bad addres ´íÎóÖ®ºó£¬ÔÚ´´½¨Ï̡߳¾pthread_create()¡¿µÄʱºòÓÖ³öÏÖÁË segmentation fault¡£
´íÎóÓï¾äÈçÏ£º
pthread_create(& ......