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. DevExpress DateEdit控件选择精确到秒

    先看看下面的效果图: 设置以下属性 dateEdit1.Properties.VistaDisplayMode = DevExpress.Utils.DefaultBoolean.True; date ...

  2. 用IBM MQ中间件开发碰到的MQRC_NOT_AUTHORIZED(2035)问题

    我在一台工作站上面部署了MQ服务器,在MQ服务器中我建立了队列管理器MQ_TEST,在该队列管理器中我建立了一个本地队列MQ_Q以及一个服务器连接通道MQ_C,MQ_C中的MCA用户标识默认为空.同时 ...

  3. mysql数据库优化方法大数据量查询轻松解决

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. 互换元素(swap,swap_ranges)

    swap template <class Assignable> void swap(Assignable &a,Assignable &b); iter_swap tem ...

  5. day9大纲

    01 作业内容回顾 函数的初识: 封装一个功能. def 函数名(): 函数体 函数的返回值:return 1,结束函数. 2,返回给执行者(函数名())值. return ----> None ...

  6. 论 数据库 B Tree 索引 在 固态硬盘 上 的 离散存储

    传统的做法 , 数据库 的 B Tree 索引 在 磁盘上是 顺序存储 的 , 这是考虑到 磁盘 机械读写 的 特性 . 实际上 , B Tree 是一个 树形结构 , 可以采用 链式 存储 , 就是 ...

  7. Anaconda详细安装使用教程

    版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址. https://blog.csdn.net/program_developer/article/details/79677557 ...

  8. slice.indices()/collections.Counter笔记

    关于slice.indices() >>> help(slice) Help on class slice in module builtins: class slice(objec ...

  9. golang 如何查看channel通道中未读数据的长度

    可以通过内建函数len查看channel中元素的个数. 内建函数len的定义如下: func len(v Type) int The len built-in function returns the ...

  10. php输出异常的检查方法

    同事在用php展示验证码时,老是无法正常显示 但是的代码在别的地方正常运行 查看了输出,是有内容的,但是就是不显示 根据经验,应该是输出的内容有混淆,就是说在输出图片内容的时候,掺杂进去额外的信息 通 ...