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. Percona XtraDB Cluster高可用与状态快照传输(PXC 5.7 )

    Percona XtraDB Cluster(下称PXC)高可用集群支持任意节点在运行期间的重启,升级或者意外宕机,即它解决了单点故障问题.那在这个意外宕机或者重启期间,该节点丢失的数据如何再次进行同 ...

  2. Unicode与UTF-8

    以下内容转自网络 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为”字节“.再后来,他们又做了一些可以处理这些 ...

  3. NET设计模式 第二部分 结构性模式(9):装饰模式(Decorator Pattern)

    装饰模式(Decorator Pattern) ——.NET设计模式系列之十 Terrylee,2006年3月 概述 在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特 ...

  4. Flume 拦截器(interceptor)详解

    flume 拦截器(interceptor)1.flume拦截器介绍拦截器是简单的插件式组件,设置在source和channel之间.source接收到的事件event,在写入channel之前,拦截 ...

  5. Redis:高性能文件缓存key-value储存

    1.前言 a.Redis是一个开源,先进的key-value(键/值对)存储,并且勇于构建高性能,可扩展的Web应用程序的完美解决方案 b.Redis和Memcached的对比 b.1 Redis数据 ...

  6. 大数据时代——为什么用HADOOP?

    转载自:http://www.daniubiji.cn/archives/538 什么叫大数据 “大”,说的并不仅是数据的“多”!不能用数据到了多少TB ,多少PB 来说. 对于大数据,可以用四个词来 ...

  7. 多层级sql查询

    SELECT ( SELECT ) FROM t_app_user WHERE parent_user_id = t.user_id /*多层级,t.user_id */ ) AS directCou ...

  8. 基于mysql对mybatis中的foreach进行深入研究

    鉴于上一篇博文一次修改mysql字段类型引发的技术探究提到的,要对foreach里面的collection相关的内容做一些介绍,今天就围绕foreach,做一些数据插入和查询相关的研究. 首先介绍一下 ...

  9. mysql_test

    ------------------ #/bin/sh binlogfile=$1 if [ ! -n $binlogfile ]thenecho "pls input your mysql ...

  10. Redis几种数据类型的应用场景(转)

    原文地址:https://blog.csdn.net/xiaoliuliu2050/article/details/73250708