Errno

UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是<0:出错,=0:连接关闭,>0接收到数据大小,特别:返回 值<0时并且(errno==EINTR||errno==EWOULDBLOCK||errno==EAGAIN)的情况 下认为连接是正常的,继续接收。只是阻...

vim命令以及gcc编译器的常用cmd

Gcc常用命令:         -c    仅对源文件进行编译,不链接生成可执行文件。常用于查错和只生成目标文件。     -o    经过gcc处理过后的结果保存在-o后面的文件中,可以是多种文件。如无参数,默认名称不同     -v    查看版本信息     -g    在可执行文件中加入调试信息,相当于Windows下的Debug版本。方便使用g...

关于 errno ==EINTR 的小结

  如果read()读到数据为0,那么就表示文件读完了,如果在读的过程中遇到了中断则read()应该返回-1,同时置errno为EINTR。 因此判断read的条件如下:    if <=0 {      if==0      {           表示文件结束, 处理  }      if(<0 && errno==EINT...

Linux ERRNO

摘自Linux-3.18.20的头文件include/uapi/asm-generic/errno-base.h和include/uapi/asm-generic/errno.h: #define EPERM 1 /* Operation not permitted */ #define ENOENT 2...

SIGPIPE

send或者write socket遭遇SIGPIPE信号 当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 又或者当一个进程向某个已经收到RST的socket执行写操作是,内核向...

UNIX网络编程——网络IPC:套接字

Contents 套接字接口 套接字描述符 寻址 字节序 地址格式 地址查询 绑定地址 建立连接 数据传输 套接字选项 带外数据 UNIX域套接字 使用套接字的示例 面向连接的ruptime 无连接的ruptime 套接字接口       套接字接口是一组用来结合UNIX I/O函数进行进程间通信的函数,大多数系统上都实现了它,包括各...

error:class 'socket.error' [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224

supervisor 配置完毕,使用supervisorctl reload 和supervisorctl update 启动时候报错 解决方法使用下面命令启动 /usr/bin/python2 /usr/bin/supervisord -c /etc/supervisord.conf 1 supervisord是服务端,是个deamon,supervis...

Socket Connect问题

一、非阻塞Connect对于Select时应注意的问题二、linux客户端socket非阻塞connect编程 一、非阻塞Connect对于Select时应注意的问题 对于面向连接的socket(SOCK_STREAM、SOCK_SEQPACKET),在读写数据之前必须建立连接。 建立连接的过程: 首先,服务器端socket必须在一个客户端知晓的地...

网络socket编程实现并发服务器——多线程编程

一、多线程简介1、什么是线程?       线程在操作系统原理中是这样描述的:线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调...

C语言实现简单线程池(转-Newerth)

有时我们会需要大量线程来处理一些相互独立的任务,为了避免频繁的申请释放线程所带来的开销,我们可以使用线程池。下面是一个C语言实现的简单的线程池。 头文件: 1: #ifndef THREAD_POOL_H__ 2: #define THREAD_POOL_H__ 3: 4: #include <pthread.h> 5: 6: /* 要执...