chapter5
 5.1 概述
 5.2 TCP回射服务器程序:main函数

  • int main(int argc, char **argv)
  • {
  • int listenfd,connfd;
  • pid_t childpid;
  • socklen_t clilen;
  • struct sockaddr_in, cliaddr, servaddr;
  • listenfd = Socket(AF_INET, SOCK_STREAM, 0);
  • bzero(&servaddr, sizeof(servaddr));
  • servaddr.sin_famlily = AF+INET;
  • servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  • servaddr.sin_port = htons(SERV_PORT);
  • Bind(listenfd, (SA*)&servaddr, sizeof(servaddr));
  • Listne(listenfd,LISTENQ);
  • for(;;)
  • {
  • client = sizeof(cliaddr);
  • connfd = Accept(listenfd, (SA*)&cliaddr, &client);
  • if( (childpit = Fork()) == 0)
  • {
  • Close(listenfd);
  • str_echo(connfd);
  • exit(0);
  • }
  • Close(connfd);
  • }
  • }

5.3 TCP 回射服务器程序:str_echo函数

  • void str_echo(int sockfd)
  • {
  • ssize_t n;
  • char buf[MAXLINE];
  • again:
  • while( (n = read(sockfd, buf, MAXLINE)) > 0)
  • Writen(sockfd,buf, n);
  • if(n < 0 && error =- EINTR)
  • goto again;
  • else if(n < 0)
  • err_sys("error");
  • }

5.4 TCP 回射客户程序:main函数
 5.5
 5.6 正常启动
 5.7 正常终止
 5.8 POSIX信号
 5.9 处理SIGCHILD信号
 5.10 wait和waitpid函数

  • #include <sys/wait.h>
  • pid_t wait(int *status);
  • pid_t waitpid(pit_t pid, int *status, int options);

【Unix网络编程】chapter5TCP回射服务器程序的更多相关文章

  1. UNIX网络编程——UDP回射服务器程序(初级版本)以及漏洞分析

    该函数提供的是一个迭代服务器,而不是像TCP服务器那样可以提供一个并发服务器.其中没有对fork的调用,因此单个服务器进程就得处理所有客户.一般来说,大多数TCP服务器是并发的,而大多数UDP服务器是 ...

  2. UNIX网络编程——TCP回射服务器/客户端程序

    下面通过最简单的客户端/服务器程序的实例来学习socket API. serv.c 程序的功能是从客户端读取字符然后直接回射回去: #include<stdio.h> #include&l ...

  3. 《UNIX网络编程》TCP客户端服务器例子

    最近在看<UNIX网络编程>(简称unp)和<Linux程序设计>,对于unp中第一个获取服务器时间的例子,实践起来总是有点头痛的,因为作者将声明全部包含在了unp.h里,导致 ...

  4. Linux下select的用法--实现一个简单的回射服务器程序

    1.先看man手册 SYNOPSIS       /* According to POSIX.1-2001 */       #include <sys/select.h>       / ...

  5. UNIX网络编程卷1 时间获取程序server TCP 协议相关性

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 最初代码:  这是一个简单的时间获取server程序.它和时间获取程序client一道工作. ...

  6. UNIX网络编程——使用select函数的TCP和UDP回射服务器程序

    服务器程序: #include <sys/wait.h> #include <string.h> #include <string.h> #include < ...

  7. TCP回射服务器程序:str_echo函数

    str_echo函数执行处理每个客户的服务: 从客户读入数据,并把它们回射给客户 读入缓冲区并回射其中内容: read函数从套接字读入数据,writen函数把其中内容回射给客户 如果客户关闭连接,那么 ...

  8. TCP回射服务器程序:main函数

    TCP回射并发服务器 1.创建套接字,绑定服务器的众所周知端口 创建一个TCP套接字,在待绑定到该TCP套接字的网际网套接字地址结构中填入通配地址(INADDR_ANY) 和服务器的众所知周(SERV ...

  9. UNIX网络编程——使用线程的TCP回射服务器程序

    同一进程内的所有线程除了共享全局变量外还共享: (1)进程指令: (2)大多数数据: (3)  打开的文件(即描述符): (4)信号处理函数和信号处置: (5)当前工作目录: (6)用户ID和组ID. ...

随机推荐

  1. h5新增内容

    1.新的input type值 email url search tel color range number date month week time datetime datetime-local ...

  2. day 31 进程的其他方法 进程锁 进程队列

    一.进程的其他方法 1.   .name      进程名   (可指定) 2.  .pid     进程号 3.   os.getpid         在什么位置就是什么的进程号 4.   .is ...

  3. ML(4)——逻辑回归

    Logistic Regression虽然名字里带“回归”,但是它实际上是一种分类方法,“逻辑”是Logistic的音译,和真正的逻辑没有任何关系. 模型 线性模型 由于逻辑回归是一种分类方法,所以我 ...

  4. [转]ArrayList的实现原理

    1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...

  5. PHP socket 服务器框架集

    1.Swoole:重新定义PHP PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时 ...

  6. C# Json数组序列化和反序列总结

    1.创建json数组,例: JArray arrFile = new JArray(); arrFile.Add(new JObject() { new JProperty("FilePat ...

  7. ASP.NET AJAX入门系列(8):自定义异常处理

    在UpdatePanel控件异步更新时,如果有错误发生,默认情况下会弹出一个Alert对话框显示出错误信息,这对用户来说是不友好的,本文看一下如何在服务端和客户端脚本中自定义异常处理,翻译自官方文档. ...

  8. Java判断两个List是否相同

    1.利用Java中为List提供的方法retainAll() /** * 判断两个List内的元素是否相同 * <p> * 此方法有bug 见Food.class * * @param l ...

  9. window7环境MySql5.7 zip安装配置教程

    1.将zip压缩包解压到一个目录下,并改名为mysql5.7 我的是放在D:\web\mysql5.7下 2.修改my-default.ini文件 下面几项是必填的,否则无法启动 basedir = ...

  10. 解决Sublime Text 3中文显示乱码问题

    之前用Sublime Text 2,阅读了你是猴子派的救兵吗写的博客解决Sublime Text 2中文显示乱码问题,解决了问题. 后来嫌版本2启动太慢了,换成Sublime Text 3之后,发现网 ...