概述 本文通过使用select改写之前的服务器程序通过监控多个套接字描述符来实现并发连接并加入了一些机制让程序更加健壮,不过我们所有的实验都是建立在单词发送数据不会超过1024字节,如果超过你需要做特殊处理。 代码实例 描述符就绪条件 套接字准备好读 以下条件满足之一则套接字准备好读 套接字接收缓冲 ...
分类:
其他好文 时间:
2018-10-01 19:10:52
阅读次数:
266
I/O 多路复用是通过一种机制使一个进程能同时等待多个文件描述符(fd),而这些文件描述符(套接字描述符)其中的任意一个进入读就绪状态,epoll()函数就可以返回。 所以, IO多路复用,本质上不会有并发的功能,因为任何时候还是只有一个进程或线程进行工作,它之所以能提高效率是因为select\ep ...
分类:
其他好文 时间:
2018-07-06 11:38:02
阅读次数:
155
4.1 各种套接字api(重要) 4.1.1 socket() 用于创建一个套接字描述符,这个描述符指明的是tcp还是udp,同时还有ipv4还是ipv6 family主要是指明的协议族,AF_INET:ipv4、AF_INET6:ipv6 、AF_LOCAL:unix域协议、AF_ROUTE:路由 ...
分类:
其他好文 时间:
2018-03-30 10:15:12
阅读次数:
223
什么是套接字描述符?(socket描述符) 什么是套接字描述符?(socket描述符) 套接字描述符是一个整数类型的值。每个进程的进程空间里都有一个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字数据结构的地址,因此 ...
分类:
其他好文 时间:
2017-08-10 22:41:20
阅读次数:
123
网络编程基础 1、套接字概念 Linux环境下使用套接字进行进程之间的通信。用过套接字的接口,其他进程的位置对于应用程序来讲是透明的。相互通信双方端点都有一个套接字,双方如果要进行通信,通过套接字建立桥梁,双方就可以通信了。 类似文件一样,套接字也有一个套接字描述符,应用程序可以像操作文件一样操作套 ...
分类:
其他好文 时间:
2017-04-09 23:27:26
阅读次数:
231
这道逆向题相对其分值来说,实在是太难了,想要逆向这个程序,需要足够的耐心,而且还需要有一定的数学知识。 这是一个64位的ELF程序。首先用IDA进行分析,开始部分的逻辑是比较简单的: 程序打开了一个套接字(描述符为3),然后监听这个套接字,在接收到消息后,会进行拷贝操作,然后返回。 最关键的就是返回 ...
分类:
其他好文 时间:
2017-02-25 13:19:15
阅读次数:
219
知道套接字描述符,如何获取这个套接字连接的相关信息呢?显然,这是一个必须要清楚的问题。 ...
分类:
其他好文 时间:
2017-01-29 13:12:33
阅读次数:
174
Socket数据结构网络协议CC++ Socket数据结构网络协议CC++ 用户使用socket系统调用编写应用程序时,通过一个数字来表示一个socket,所有的操作都在该数字上进行,这个数字称为套接字描述符。在系统调用 的实现函数里,这个数字就会被映射成一个表示socket的结构体,该结构体保存了 ...
分类:
其他好文 时间:
2016-08-20 15:58:52
阅读次数:
135
socket函数原型:#include<sys/socket.h>
intsocket(intfamily,inttype,intprotocol);//执行成功则返回非负的套接字描述符;出错则返回-1socket函数用来打开一个(主动)套接字。在该函数中需要指定所使用的协议族(family)、套接字类型(type)、使用的协议(protocol)。协议族..
分类:
其他好文 时间:
2016-05-20 14:51:47
阅读次数:
138
int close(int sockfd); close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程, 该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数 并发服务器中父进程关闭已连接套接字只是导致相应描述符的引用数值减1,既然引用 ...
分类:
其他好文 时间:
2016-04-03 21:54:25
阅读次数:
277