UNIX网络编程卷1 服务器程序设计范式8 预先创建线程,由主线程调用accept
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。 //用于维护关于每个线程基于信息的 Thread 结构typedef struct { ...
UNIX网络编程——僵尸进程
在fork()/exec()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死...
Unix网络编程中的五种I/O模型_转
转自:Unix网络编程中的的五种I/O模型下面主要是把unp第六章介绍的五种I/O模型。1. 阻塞I/O模型例如UDP函数recvfrom的内核到应用层、应用层到内核的调用过程是这样的:首先把描述符、接受数据缓冲地址、大小传递给内核,但是如果此时 该与该套接口相应的缓冲区没有数据,这个时候就recv...
UNIX网络编程学习笔记(1) 传输层:TCP UDP STCP
1 TCP连接的建立和终止 1.1 三路握手 建立一个TCP连接时会发生下述情形。 (1)服务器必须准备好接受外来的连接。这通常是通过调用socket、bind和listen这3个函数来完成,我们称之为被动打开(passive open)。 (2)客户必须通过调用connect发起主动打开...
UNIX网络编程3:基本TCP套接字编程
1. 基本TCP客户/服务器程序的套接字函数 2. socket函数:指定期望的通信协议类型 #include <sys/socket.h>int socket(int family, int type, int protocal);//若成功则返回非负描述符,若失败则返回-1 s...
Unix网络编程学习笔记之第8章 基于UDP套接字编程
一、 UDP C/S的典型函数调用 UDP没有像TCP那样的连接,客户端直接sendto向某服务器发送数据,服务器端一直recvfrom阻塞,以接收任何客户端发送的数据。 二、 sendto和recvfrom函数 int sendto(int sockfd, const void* buff...
《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
全书共31章+附录。 计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。 时间安排:计划时间1.5个月 == 6个周末 == 12天。 2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介 2017.08.06 第04-06章:基本TCP...
UNIX网络编程读书笔记:名字与地址转换
概述在名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr:在主机名字与IPv4地址之间进行转换。仅仅支持IPv4.getservbyname和getservbyport:在服务名字和端口号之间进行转换。getaddrinfo和getnameinfo:用于主机名字和...
《UNIX网络编程 卷1》 笔记:非阻塞式I/O
本节讨论非阻塞式I/O操作。默认的I/O操作如read或write等都是以阻塞的方式工作,比如read函数,如果没有数据可读取则进程一直阻塞直到有数据可读取。这种方式会带来某些问题。回到我们在I/O复用 select函数这一节实现的客户与服务器交互的str_cli函数,摘取其中处理标准输入的一段代码...
UNIX网络编程卷1(第三版)字节排序函数测试
内存中存储多字节有两种方法,即小端字节序和大端字节序,Ubuntu10.04是小端字节序,网际协议所用的字节序为大端字节序 内存地址增长方向: 低序字节->高序字节 小端字节序 高序字节->低序字节 大端字节序 主机和网络字节序转换函数在头...
Unix网络编程第三版源码编译
环境: $ cat /etc/issue Ubuntu 12.04.1 LTS \n \l $ cat /proc/version Linux version 3.2.0-48-generic (buildd@komainu) (gcc version 4.6.3 (Ubuntu/Linaro 4...
UNIX网络编程(第三版)测试环境搭建
unix网络编程书中例子都包含一个#include "unp.h"头文件,从书中附录可以看出该头文件包含了网络程序中所使用到的各种相关头文件,所以如果想自己测试书中的源代码的话,我们需要需要搭建一个环境,以下是参照网上大神的经验后实现的过程,现在记录下来供参考: 1、下载测试环境的源代码...
《Unix网络编程》(第三版)源码使用方法
《Unix网络编程》中的源代码大都是基于作者提供的头文件跟库,所以使用前需要适当配置好运行环境。 搭建步骤: 一、下载源代码及相应头文件和库文件 下载链接: http://download.csdn.net/detail/qq_19175749/9855681 也可在作者提供的网站下...
Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
一、 简介 假设我们本章讨论的主机都是支持双栈的,即支持IPv4地址,也支持Ipv6地址。 我们本次讨论的点:客户端与服务器端使用的是不同类型的地址。因为相同类型的地址没什么可讲的。 二、 IPv4客户端与IPv6服务器 即,客户端使用IPv4地址套接字来通信,服务器端使用IPv6地址套接字通信...
UNIX网络编程-tcp套接字编程一
UNIX网络编程-TCP套接字编程 socket函数 函数基本 #include <sys/socket.h> int socket(int family,int type,int protocol); family参数致命协议,该参数也往往被称为协议域。type参数指明套接字类型,它是...
unix网络编程——TCP套接字编程
TCP客户端和服务端所需的基本套接字。服务器先启动,之后的某个时刻客户端启动并试图连接到服务器。之后客户端向服务器发送请求,服务器处理请求,并给客户端一个响应。该过程一直持续下去,直到客户端关闭,给服务端发送EOF(文件结束),服务器也关闭连接的服务器端,然后结束运行或者等待新的客户发起连接请求。...
记录一次配置unix网络编程环境的过程和遇到的问题
记录一次搭建unix网络编程环境过程中遇到的问题和总结计算机环境虚拟机 linuxmint-18-xfce-64bit1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命令可鼠标操作。2.s@ss-Linux ~/unix/unpv13e $ sudo su[sudo]...
【UNIX网络高级编程】第七章-进程环境
【UNIX网络高级编程】第七章-进程环境 一. main函数 (1)c程序总是从main函数开始执行,main函数原型:int main(int argc,char *argv[]);----------argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组 (2)在内核执行c程序时(...
【Unix网络编程】chapter6IO复用
chapter6 6.1 概述I/O复用典型使用在下列网络应用场合。(1):当客户处理多个描述符时,必须使用IO复用(2):一个客户同时处理多个套接字是可能的,不过不叫少见。(3):如果一个TCP服务器既要处理监听套接字,又要处理已连接套接字。(4):如果一个服务器既要处理TCP,又要处理UDP(5...
《Unix网络编程》卷1:套接字联网API(第3版):简介、传输层、套接字编程
全书共31章+附录。 计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。 时间安排:计划时间1.5个月 == 6个周末 == 12天。 2017.08.05 第01-03章: TCP/IP简介、传输层、套接字编程简介 2017.08.06 第04-06章:基本TCP...