gaosaixing的博客

站的高,看得远

pthread_join 和pthread_detach的区别附加互斥锁代码实现

  一个线程任何时候都可以被认为是可结合(joinable)或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死。在被其他线程回收之前,它的存储器资源(例如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。  默认...

2018-02-09 10:16:58

阅读数 280

评论数 0

socket编程accept函数返回值的理解

accept函数返回值成功时返回非负值,失败时返回-1accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值。这个不同的值和建立SOCKET 时生成的SOCKFD还是不同的。服务器与客户端之间的通信就是在这些不同的SOCKF...

2018-02-08 19:07:14

阅读数 5313

评论数 0

编写多并发服务器容易出现的错误及解决方法

完成多并发服务器端SOCKET代码。实现方式是多线程。遇到问题:(1)一开始出现accept :invalid argument.   原因有二:第一,可能是accept函数的第三个参数没有初始化没有给addrlen传入合法的值,或者是没有初始化(addrlen= sizeof(addr))。第二...

2018-02-08 18:15:53

阅读数 74

评论数 0

Linux系统下多并发服务器多线程实现方式

多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程与创建进程要快 10100 倍,所以又把线程称为“轻量级”进程。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存、全局变量等信息,这...

2018-02-08 14:49:52

阅读数 79

评论数 0

Linux下高并发socket最大连接数所受的各种限制(详解)

1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ul...

2018-02-08 13:33:59

阅读数 441

评论数 0

pthread_detach()函数的作用

每一个线程在任何情况,要么是可结合的状态(joinable),要么是可分离的状态(detached)。 先将这两个函数的原型列一下 int pthread_join(pthread_t tid, void ** pthread_return); int pthread_detach(pthr...

2018-02-08 13:33:06

阅读数 178

评论数 0

ps命令解析

名称:ps使用权限:所有使用者 使用方式:ps [options] [--help]说明:显示瞬间行程 (process) 的动态 参数:ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的行程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其...

2018-02-08 13:27:22

阅读数 82

评论数 0

linux 中IP点分十进制与数值之间转换函数

#include int inet_pton(int family,const char * strptr,void * addrptr); 返回:1--成功, 0--输入不是有效的表达格式 , -1--出错  //将点分十进制的ip地址转化为用于网络传输的数值格式 const ch...

2018-02-07 15:18:40

阅读数 468

评论数 0

Linux中SOCKET 编程用到的函数

1. 创建socket[cpp] view plain copy#include <sys/types.h>    #include <sys/socket.h>    int socket(int domai...

2018-02-07 15:13:55

阅读数 82

评论数 0

linux 中sockaddr和sockaddr_in结构区别与解析

sockaddr struct sockaddr { unsigned  short  sa_family;     /* address family, AF_xxx */ char  sa_data[14];                 /* 14 bytes of pr...

2018-02-07 14:14:38

阅读数 95

评论数 0

Linux中SOCKET编程中INADDR_ANY的含义

INADDR_ANY选项     网络编程中常用到bind函数,需要绑定IP地址,这时可以设置INADDR_ANY     INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 也就是表示本机的所有IP,因为有些机子不止一块网卡...

2018-02-07 14:12:01

阅读数 605

评论数 0

linux 中socket编程中setsockopt()函数功能介绍

功能描述:        获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如...

2018-02-07 13:40:03

阅读数 489

评论数 0

linux 中多线程编程

 Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所...

2018-01-30 17:55:43

阅读数 55

评论数 0

C++中socket编程基础详解

对于SOCKET在这里我不想究其历史,我只想说其时它是一种进程通讯的方式,简言之就是调用这个网络库的一些API函数就能实现分布在不同主机的相关进程之间的数据交换.   SOCKET中首先我们要理解如下几个定义概念:   一是IP地址:IP Address我想很容易理解,就是依照TCP/IP协议...

2017-10-15 20:53:17

阅读数 1057

评论数 0

Linux系统下-进程间通信(消息队列-详解)

Linux下进程间通信方式: # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 # 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信...

2017-10-05 15:53:20

阅读数 160

评论数 0

路由汇聚问题

例如  设有下面4条路由:172.18.129.0/24、172.18.130.0/24、172.18.132.0/24和172.18.133.0/24,如果进行路由汇聚,能覆盖这4条路由的地址是__(49)__。   (49)A. 172.18.128.0/21 B. 172.18.128.0/...

2017-08-28 14:29:09

阅读数 366

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭