工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 技术跟踪 > Linux开发 > 正文
Linux中BSD套接口开发的基础介绍
[文章信息]
作者:
时间:2004-08-04
出处:CSDN
责任编辑:原野
[文章导读]
这是关于如何用各种可以得到的接口为Linux开发网络程序的系列文章的第一篇……
advertisement
热点推荐
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
· 在VB6中用命令行为模式控制GUI动作
[正文]

上一页  1 2 3 4 5  

 * (这就是dos拒绝服务攻击的基础)。
 */
  status = listen(serverSocket, BACK_LOG);
  if (-1 == status)
  {
    perror("listen()");
    exit(1);
  }
/* 从这里开始,套接口就开始准备接受请求,并为他们服务。
 * 本例子是用for循环来达到这个目的。一旦连接被接受(accpepted),
 * 服务器可以通过指针获得客户的地址以便进行一些诸如记录客户登陆之类的
 * 任务。
  for (;;)
  {
    struct sockaddr_in clientName = { 0 };
    int slaveSocket, clientLength =
  sizeof(clientName);

    (void) memset(&clientName, 0,
  sizeof(clientName));

    slaveSocket = accept(serverSocket,
  (struct sockaddr *) &clientName,
  &clientLength);
    if (-1 == slaveSocket)
    {
      perror("accept()");
      exit(1);
    }

    childPid = fork();

    switch (childPid)
    {
    case -1: /* ERROR */
      perror("fork()");
      exit(1);

    case 0: /* child process */

      close(serverSocket);

      if (-1 == getpeername(slaveSocket,
  (struct sockaddr *) &clientName,
  &clientLength))
      {
        perror("getpeername()");
      }
      else
      {
      printf("Connection request from %s\n",
          inet_ntoa(clientName.sin_addr));
      }

      /*
       * Server application specific code
       * goes here, e.g. perform some
       * action, respond to client etc.
       */
      write(slaveSocket, MESSAGE,
  strlen(MESSAGE));
        /* 也可以使用带缓存的ANSI函数fprint,
        * 只要你记得必要时用fflush刷新缓存
        */
      close(slaveSocket);
      exit(0);

    default: /* parent process */
      close(slaveSocket);/* 这是一个非常好的习惯
                * 父进程关闭子进程的套接口描述符
                * 正如上面的子进程关闭父进程的套接口描述符。
                */               
    }
  }

  return 0;
}


上一页  1 2 3 4 5  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Linux中用防火墙伪装抵挡黑客攻击
  • Linux操作系统中的泡泡龙游戏
  • Linux办公一条龙之电子表格Calc
  • Linux操作系统三则超酷技巧
  • Linux办公一条龙之初识OpenOffice
  • Linux操作系统紧急情况处理方法
  • Linux操作系统也玩显卡超频
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement