摘要:TCP的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接bai,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;最后,发送端发送一
阅读全文
摘要:https://www.iteye.com/blog/jakielong-935440
阅读全文
摘要:memset(&NetInfo,0,sizeof(NetInfo)); memcpy(NetInfo.ServerIP,strIp.toStdString().c_str(),strIp.toStdString().length()); strcpy(NetInfo.Port,strPort.toS
阅读全文
摘要:https://blog.csdn.net/tuoniaoatuoniao/article/details/76549519
阅读全文
摘要:3. 相同点 操作系统提供的接口socket(),bind(),connect(),accept(),send(),recv(),以及用来对其进行多路复用事件检测的select(),poll(),epoll()都是完全相同的。收发数据的过程中,上层应用感知不到底层的差别。 4. 不同点 1 建立so
阅读全文
摘要:3. 函数定义 该函数声明如下 1 int select(int nfds, fd_set* readset, fd_set* writeset, fe_set* exceptset, struct timeval* timeout); 1 int select(int nfds, fd_set*
阅读全文
摘要:多线程+任务队列;接口被多线程调用,但请求会被暂存到任务队列,而任务队列会被单线程不断执行,典型生产者消费者模式。它的并发在于不同的接口可以使用不同的任务队列。这也是我最常用的并发方式。 这是两种最常见的多线程并发,它们有个天生的缺陷——Scalability。一个机器的性能总是有瓶颈的。两个场景的
阅读全文
摘要:unix域套接字用于同一台主机上进程之间的通信,与AF_INET套接字相比,AF_LOCAL通信的效率更高: unix域套接字仅仅是复制数据,不执行协议处理 不需要添加或删除网络报头 不计算校验和,不产生序列号 不需要发送确认报文
阅读全文
摘要:高并发服务器常由多线程+IO复用服务器(one event loop per thread) 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发
阅读全文
摘要:socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要
阅读全文
摘要:socket程序只能实现服务器连接一个客户端,不能解决并发问题,及多个客户端同时连接。下面的程序采用多进程的思想,在accept()调用之后利用fork()产生子进程。 【转】:https://blog.csdn.net/XN6666/article/details/80309422
阅读全文
摘要:sem_t #include<semaphore.h> 信号量的数据类型为结构sem_t,它本质上是一个长整型的数。 一个简单的东西,进程间通信 等待信号量
阅读全文
摘要:【转】https://blog.csdn.net/u014530704/article/details/77387536 在之前的博客中linux信号量—互斥与同步谈到无名信号量。无名信号量主要用于线程间的通信,保存在内存中,如果想要在进程间同步就必须把无名信号量放在进程间的共享内存中。而在进程间的
阅读全文
摘要:通过msgctl()函数,我们可以直接控制消息队列的行为。它在系统库linux/msg.h 中的
阅读全文
摘要:https://blog.csdn.net/qq_40732350/article/details/82467051
阅读全文
摘要:功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选
阅读全文
摘要:C语言中,信号量的数据类型为结构sem_t,它本质上是一个长整型的数。 它的原型为: extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value)); 头文件为: #include <semaphore.h>
阅读全文
摘要:SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。但是SIGKILL信号不同,它可以被捕获和解释(或忽略)的过程。SIGKILL是发送到处理的信号以使其立即终止。当发送到程序,SIGKILL使其立即终止。在对比SIGTERM和SIGINT,这个信号不能
阅读全文
摘要:dup和dup2用来复制文件描述符。函数原型:#includeint dup(int oldfd);int dup2(int oldfd,int newfd); dup用来复制oldfd所指的文件描述符。但复制成功时返回最小的尚未被使用的文件描述符。若有错误则返回-1,错误代码存入errno中。返回
阅读全文