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

linux Socket±à³ÌÈëÃÅ

ÒÔǰÒѾ­½Ó´¥WindowsϵÄSocket±à³Ì£¬×î½üÒ²³¢ÊÔ×ÅÔÙlinuxÏÂʹÓÃSocket±à³Ì£¬ÏÂÃæÊÇÔÚÍøÉÏÕÒµÄÀý×Ó(ÒѾ­²âÊÔ¹ý)
 tcp_server.c:
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <time.h>
#define SERVER_PORT 20000
#define LENGTH_OF_LISTEN_QUEUE 10
#define BUFFER_SIZE 255
#define WELCOME_MESSAGE "welcome to connect the server"
int main(int argc, char **argv)
{
 int servfd,clifd;
 struct sockaddr_in servaddr,cliaddr;
 if((servfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
 {
  printf("create socket error!\n");
  exit(1);
 }
 bzero(&servaddr, sizeof(servaddr));
 servaddr.sin_family = AF_INET;
 servaddr.sin_port = htons(SERVER_PORT);
 servaddr.sin_addr.s_addr = htons(INADDR_ANY);
 
 if(bind(servfd,(struct sockaddr*)&servaddr,sizeof(servaddr)) < 0)
 {
  printf ("bind to port %d failure!\n",SERVER_PORT);
  exit(1);
 }
 
 if(listen(servfd, LENGTH_OF_LISTEN_QUEUE) < 0)
 {
  printf("call listen failure!\n");
  exit(1);
 }
 while(1)
 {
  char buf[BUFFER_SIZE];
  long timestamp;
  socklen_t length = sizeof(cliaddr);
  clifd = accept(servfd, (struct sockaddr*)&cliaddr, &length);
  if(clifd < 0)
  {
   printf("error comes when call accept!\n");
   break;
  }
  strcpy(buf,WELCOME_MESSAGE);
  printf("from client, IP:%s, Port:%d\n", inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port));
  timestamp = time(NULL);
  strcat(buf, "timestamp in server:");
  strcat(buf, ctime(&timestamp));
  send(clifd, buf, BUFFER_SIZE, 0);
  close(clifd);
 }
 close(servfd);
 return 0;
}
tcp_clie


Ïà¹ØÎĵµ£º

ÔÚLinuxÏÂÓÃbuildroot´î½¨mips/armµÄ½»²æ±àÒëÆ½Ì¨

 ÔÚLinuxÏÂÓÃbuildroot´î½¨mips/armµÄ½»²æ±àÒëÆ½Ì¨
Õâ¸ö±àÒë»·¾³ÊDz»ÄܱàÒëfor¿ªÔ´ÎÞÏß·ÓÉÆ÷µÄ³ÌÐòµÄ£¬ÒòΪÄÚºËÊÇ2.6µÄ
½¨Òé²Î¿¼ÕâÆª: http://www.felix021.com/blog/read.php?1467
ǰÁ½ÌìÂòÁËNetGear WRT614 V9£¬´îÔØµÄÊÇBroadcomµÄ200MHz MIPS´¦ÀíÆ÷¡£
ÓÉÓÚʹÓõÄÊÇ¿ªÔ´²Ù×÷ϵͳLinux£¬ËùÒÔ¿ÉÒÔË¢ÍøÉÏһЩNBµÄ ......

ÈçºÎ³ÉΪһ¸öLinuxϵͳÄں˿ª·¢Õß

¡¡¡¡ÄãÏë³ÉÖªµÀÈçºÎ³ÉΪһ¸öLinuxÄں˿ª·¢Õßô£¿»òÕßÄãµÄÀÏ°å¸æËßÄ㣬“ȥΪÕâ¸öÉ豸дһ¸öLinuxÇý¶¯¡£“ÕâÆªÎĵµµÄÄ¿µÄ£¬¾ÍÊÇͨ¹ýÃèÊöÄãÐèÒª¾­ÀúµÄ¹ý³ÌºÍÌáʾÄãÈçºÎºÍÉçÇøÒ»Æð¹¤×÷£¬À´½Ì¸øÄãΪ´ïµ½ÕâЩĿµÄËùÐèÒªÖªµÀµÄËùÓÐ֪ʶ¡£±¾ÎÄÒ²³¢ÊÔ½âÊÍÉçÇøÎªÊ²Ã´ÕâÑù¹¤×÷µÄһЩԭÒò¡£
¡¡¡¡Äں˼¸ºõÈ«ÊÇÓÃCд³ÉµÄ£¬ÓÐ ......

Linux±ØÑ§µÄ60¸öÃüÁî (ת)

inux±ØÑ§µÄ60¸öÃüÁî
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿² ......

LinuxÄÚ´æ¹ÜÀíÖ®slab·ÖÅäÆ÷·ÖÎö(ÐøËÄ)


Æß£ºkmem_cache_free£¨£©µÄʵÏÖ
kmem_cache_freeÓÃÓÚ°Ñ´ÓslabÖзÖÅäµÄ¶ÔÏóÊͷŵô£¬Í¬·ÖÅäÒ»Ñù£¬ËüÊ×ÏÈ»á°ÑËü·Åµ½ACÖУ¬Èç¹ûACÂúÁË£¬Ôò°Ñ¶ÔÏóÊͷŵ½shareÁ´ÖУ¬Èç¹ûshareÒ²ÂúÁË£¬Ò²¾Í°ÑËüÊÍ·ÅÖÁslab¡£À´¿´¾ßÌåµÄ´úÂ룺
void kmem_cache_free (kmem_cache_t *cachep, void *objp)
{
     unsi ......

LinuxÏ c ÅжÏÒ»¸öÎļþÊÇ·ñ´æÔÚ

#include <stdio.h>
#include <unistd.h>
#define FOO "foo"
int main(void)
{
if(!access(FOO, F_OK))
{
if(!unlink(FOO))
{

}
else
{
printf("remove %s failed\n", FOO);
}
}
else
{
printf("%s not existed\ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ