-
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
-
本文比较了宽带传输方案中SC_FDE系统与OFDM系统的性能
本文比较了宽带传输方案中SC_FDE系统与OFDM系统的性能-This article compares the broadband transmission program SC_FDE system and OFDM system performance
- 2022-06-26 17:30:10下载
- 积分:1
-
标准xcp协议,其中包括xcp的协议层,传输层的定义,完整的协议文档。...
标准xcp协议,其中包括xcp的协议层,传输层的定义,完整的协议文档。-Standard xcp agreements, including xcp protocol layer, transport layer definition, a complete protocol document.
- 2023-06-27 07:30:05下载
- 积分:1
-
Nokia手机语音管理程序,如上载音乐等。
Nokia手机语音管理程序,如上载音乐等。-Nokia handset pronunciation executive program, like uploads
the music and so on.
- 2022-08-21 01:25:30下载
- 积分:1
-
- 2023-01-03 05:35:04下载
- 积分:1
-
error correct coding of the randomizer, beginning in the encoding process a rand...
随机发生器的纠错编码,在编码过程中开始一个随机模块是bpsk内的ieee802.16。
- 2022-09-21 11:25:03下载
- 积分:1
-
lcd多级菜单
lcd多级菜单 -lcd multi-level menu
- 2022-02-20 22:27:21下载
- 积分:1
-
滚动码编码芯片HCS301使用资料
一般使用滚码都参考此芯片
滚动码编码芯片HCS301使用资料
一般使用滚码都参考此芯片-rolling encoder chip HCS301 general information on the use of code are used roller reference this chip
- 2023-06-23 09:30:03下载
- 积分:1
-
用BC++3.1编的C语言文本编辑器
用BC++3.1编的C语言文本编辑器 -with BC 3.1 series of the C language text editor
- 2023-01-23 16:00:03下载
- 积分:1
-
基于车辆定位跟踪系统和GPS
资源描述车辆跟踪系统将安装和安装在车辆中的电子设备,或车辆,目的是设计的计算机软件,使车主或三分之一方跟踪车辆的位置,收集数据的过程中。现代和车辆跟踪系统通常使用全球定位系统(全球定位系统)技术的定位,车辆,但其他类型的自动车辆定位和技术也可以使用。车辆信息可以通过互联网或与电子地图,通过互联网或专门的软件
- 2022-02-03 17:37:58下载
- 积分:1