-
linux epoll模型
该代码是关于在linux平台下的网络编程,epoll模型,socket接受线程:C语言为了高并发所以选择了epoll。当程序启动的时候(g_net_update.c文件中main函数,会启动一个thread见函数create_accept_task)这个thread就处理一件事情,只管接收客户端的连接,当有连接进来的时候 通过epoll_ctl函数,把socket fd 加入到epoll里面去,epoll设置监听事件EPOLLIN | EPOLLET; 主要是监听的是加入到epoll中的socket是否可读(因为我的需求是客户端连上了server就会马上向server发送一份数据的)。其它的部分在主线程中处理。主线程:是一个无线循环,epoll_wait 函数相当于把客户端的连接从epoll中拿出来(因为我们监听的是EPOLLIN | EPOLLET)说明这个时候客户端有数据发送过来)。再通过recv_buffer_from_fd 函数把客户端发送过来的数据读出来。然后其他的一切就抛给线程池去处理。线程池:(代码中我会在池里面创建15个线程) 双向链表。加入线程就是在链表后面加一个链表项,链表的前面会一个一个被拿出来处理。主要是malloc 函数free函数,sem_wait函数sem_post的处理(sem_wait 会阻塞当值大于0是会减一,sem_post是值加一)。typedef void* (FUNC)(void arg, int index);是我们自定义的线程的逻辑处理部分,arg是参数,index是第几个线程处理(我们隐形的给每个线程都标了号),例如代码中的respons_stb_info,更加具体可以看看代码里面是怎么实现的。聪明的你也可以改掉这块的内容改成动态线程池,当某个时刻的处理比较多的时候能够动态的增加线程,而不像我代码里面的是固定的。数据库连接池:按照我的需求在处理客户端请求数据的时候是要访问数据库的。就是一下子创建出一堆的数据连接。要访问数据库的时候先去数据库连接池中找出空闲的连接,具体可以看下代码。使用的时候可以参考下database_process.c文件(代码中数据库连接池和线程池中的个数是一样的)。
- 2022-03-20 03:15:54下载
- 积分:1
-
该文件内含两个文件,一个是串口调试助手,另一个是用VC编写串口调试助手的源程序,对串口调试助手及其实现原理感兴趣的,是一个很有用的资料。...
该文件内含两个文件,一个是串口调试助手,另一个是用VC编写串口调试助手的源程序,对串口调试助手及其实现原理感兴趣的,是一个很有用的资料。-The document contains two papers, one is the serial debug assistant, and the other is used to prepare serial debug VC source assistants, assistant to the serial debug and realize the principle of interest is a very useful information.
- 2022-05-19 03:36:38下载
- 积分:1
-
Precoding Game
This paper characterizes the multicell precoding game where block-diagonalization (BD)-based precoding is utilized on a per-cell basis for downlink transmissions.
- 2022-05-25 15:03:03下载
- 积分:1
-
串口调试VB源代码.可以实现串口接收,串口参数设置,并能保存相关信息,特别适合于对串口通讯有兴趣的程序员....
串口调试VB源代码.可以实现串口接收,串口参数设置,并能保存相关信息,特别适合于对串口通讯有兴趣的程序员.-Serial debug VB source code. Can be achieved to receive serial port, serial parameter setting, and to preserve relevant information, especially suitable for serial communication to interested programmers.
- 2022-01-25 15:33:23下载
- 积分:1
-
地理贪婪转发
有几种类型的 ad hoc 路由协议,例如主动、 无功、 地理的、 无国籍的路由,等等。我相信地理无国籍路由是最简单的路由协议,在 ns2 实施。为什么它是最简单的吗?这是因为无国籍的属性指示无网络中的节点不维护任何路由表。请注意我们仍将保持邻居列表时,使用路由组件,但此类信息是逻辑链路层公开发售。本系列文章的目的是了解如何实现一种新的路由协议,因此,我们考虑静态网络节点不可移动。我们认为执行的假设,包括 ;1) 所有节点都有其自己的地理位置 (2 维坐标) ;2) 每个节点知道其邻国位置 ;和 3) 源节点知道 ID 和相应的目标位置。我们打算去执行如下的作品地理贪婪转发议定书 》。从上部层收到一个数据包,源节点添加标头,包括目标 ID 和位置。源节点发送数据包到邻居接近目标。从一位邻居收到一个数据包,节点将该数据包转发如果存在一个邻居更接近到比自己的目的地。如果没有邻居更接近比本身,所以称为局部极小值,它只是下降数据包。当数据包到达目的地时,传送已完成。
- 2022-03-06 11:36:29下载
- 积分:1
-
Chinese RFC documents, without translation, the right to study very helpful!
中文RFC文件,无需翻译,对学习很有帮助!
- 2022-03-07 15:20:27下载
- 积分:1
-
华为通信系统概论。系统的描述是通信系统的内容及华为产品的应用。...
华为通信系统概论。系统的描述是通信系统的内容及华为产品的应用。-Introduction to Communication Systems, Huawei Technologies. System communication systems are described in the content and application of Huawei products.
- 2023-03-14 03:10:03下载
- 积分:1
-
介绍了ASN1的协议规范,相关的基本数据类型和建设机制,应用ASN1编程...
介绍了ASN1的协议规范,相关的基本数据类型和建设机制,应用ASN1编程-The protocol specification describes the ASN1, the relevant basic data types and construction mechanisms, application programming ASN1
- 2022-08-11 03:32:32下载
- 积分:1
-
驱动例,优秀代码。
driver example, excellent code.
- 2022-02-27 02:10:15下载
- 积分:1
-
OFDM信道估计LMMSE估计和LS估计算法的比较
仿真载频为2GHz,带宽1MHz,子载波数128个,cp为16,子载波间隔为7.8125kHz
一个ofdm符号长度为128us,cp长度为16us,采用16QAM调制方式,最大doppler频率为132Hz
采用LMMSE估计和LS估计算法并进行了比较
- 2022-04-06 15:04:52下载
- 积分:1