
网络编程
文章平均质量分 60
luckystar_sai
机会总是垂青有准备的人
展开
-
路由汇聚问题
例如 设有下面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/22 C. 172.18.130.0/22 D. 172.18.132.0/23原创 2017-08-28 14:29:09 · 3150 阅读 · 0 评论 -
socket编程accept函数返回值的理解
accept函数返回值成功时返回非负值,失败时返回-1accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值。这个不同的值和建立SOCKET 时生成的SOCKFD还是不同的。服务器与客户端之间的通信就是在这些不同的SOCKFD上进行的。在服务器端,socket()返回的套接字用于监听(listen)和接受(accept)客户...原创 2018-02-08 19:07:14 · 38777 阅读 · 5 评论 -
Linux中SOCKET 编程用到的函数
1. 创建socket[cpp] view plain copy#include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); domain参数为底层协议族:AF_INET(用于Internet);对于UNIX本地域协议族为AF_UN...原创 2018-02-07 15:13:55 · 510 阅读 · 1 评论 -
linux 中socket编程中setsockopt()函数功能介绍
功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include <sys...原创 2018-02-07 13:40:03 · 2839 阅读 · 0 评论 -
编写多并发服务器容易出现的错误及解决方法
完成多并发服务器端SOCKET代码。实现方式是多线程。遇到问题:(1)一开始出现accept :invalid argument. 原因有二:第一,可能是accept函数的第三个参数没有初始化没有给addrlen传入合法的值,或者是没有初始化(addrlen= sizeof(addr))。第二: 在参数1处出错,多半情况是sockfd值非法,也即是没有绑定(bind),监听(listen)或者...原创 2018-02-08 18:15:53 · 422 阅读 · 0 评论 -
Linux下高并发socket最大连接数所受的各种限制(详解)
1、修改用户进程可打开文件数限制在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。可使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[speng@as4 ~]$ ulimit -n...转载 2018-02-08 13:33:59 · 5891 阅读 · 0 评论 -
pthread_detach()函数的作用
每一个线程在任何情况,要么是可结合的状态(joinable),要么是可分离的状态(detached)。 先将这两个函数的原型列一下 int pthread_join(pthread_t tid, void ** pthread_return); int pthread_detach(pthread_t tid); 当我们的线程运行结束后,最后显示的调用被回收。这样就出现两种回收方式。 1. ...原创 2018-02-08 13:33:06 · 7336 阅读 · 0 评论 -
ps命令解析
名称:ps使用权限:所有使用者 使用方式:ps [options] [--help]说明:显示瞬间行程 (process) 的动态 参数:ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的行程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程au(x) 输出格式 :USER PID %CPU %MEM VSZ RSS TTY S...转载 2018-02-08 13:27:22 · 527 阅读 · 0 评论 -
linux 中多线程编程
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档转载 2018-01-30 17:55:43 · 192 阅读 · 0 评论 -
linux 中IP点分十进制与数值之间转换函数
#include int inet_pton(int family,const char * strptr,void * addrptr); 返回:1--成功, 0--输入不是有效的表达格式 , -1--出错 //将点分十进制的ip地址转化为用于网络传输的数值格式const char * inet_ntop(int family,const void * addrptr,char原创 2018-02-07 15:18:40 · 2060 阅读 · 0 评论 -
linux 中sockaddr和sockaddr_in结构区别与解析
sockaddrstruct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的转载 2018-02-07 14:14:38 · 665 阅读 · 0 评论 -
Linux中SOCKET编程中INADDR_ANY的含义
INADDR_ANY选项 网络编程中常用到bind函数,需要绑定IP地址,这时可以设置INADDR_ANY INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。 比如一台电脑有3块网卡,分别连接三个网原创 2018-02-07 14:12:01 · 3857 阅读 · 0 评论 -
pthread_join 和pthread_detach的区别附加互斥锁代码实现
一个线程任何时候都可以被认为是可结合(joinable)或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死。在被其他线程回收之前,它的存储器资源(例如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 默认情况下,线程被创建成可结合的。为了避免存储器泄漏,每个可结合线程都应该要么被显示地回收,即调用pthr...原创 2018-02-09 10:16:58 · 705 阅读 · 0 评论 -
C++中socket编程基础详解
对于SOCKET在这里我不想究其历史,我只想说其时它是一种进程通讯的方式,简言之就是调用这个网络库的一些API函数就能实现分布在不同主机的相关进程之间的数据交换. SOCKET中首先我们要理解如下几个定义概念: 一是IP地址:IP Address我想很容易理解,就是依照TCP/IP协议分配给本地主机的网络地址,就向两个进程要通讯,任一进程要知道通讯对方的位置,位置如何来确定,就原创 2017-10-15 20:53:17 · 4102 阅读 · 0 评论 -
Linux系统下-进程间通信(消息队列-详解)
Linux下进程间通信方式:# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源转载 2017-10-05 15:53:20 · 388 阅读 · 0 评论 -
Linux系统下多并发服务器多线程实现方式
多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程与创建进程要快 10100 倍,所以又把线程称为“轻量级”进程。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存、全局变量等信息,这种机制又带来了同步问题。我们在使用多线程并发服务器时,直接使用以上框架,我们仅仅修改client_fu...原创 2018-02-08 14:49:52 · 792 阅读 · 0 评论