-
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
-
GSMl3层概述,需要了解的朋友可以看一下,是ETSI文档.
GSMl3层概述,需要了解的朋友可以看一下,是ETSI文档.-GSMl3 outlined layer, need to know you can look at is the ETSI document.
- 2022-02-13 14:35:16下载
- 积分:1
-
快递送货系统
项目特点办公室登录快递加入出货编辑/更新出货列出所有出货搜寻方式发运编号查看报告项目技术指标技术:PHP,MySQL和JavaScript的难度级别:初级排名:5/10
- 2022-01-21 03:59:57下载
- 积分:1
-
ARM7TDMI series EMAC Chinese interface (translation)
ARM7TDMI系列 EMAC接口中文(翻译)-ARM7TDMI series EMAC Chinese interface (translation)
- 2023-01-16 05:20:04下载
- 积分:1
-
关于ivr的jain,开发包,很好用的
关于ivr的jain,开发包,很好用的-Carolina on the IVR, development kits, with the good
- 2022-02-14 21:49:56下载
- 积分:1
-
BlueTooth procedures, controls BlueTooth
蓝牙程序,控制蓝牙
- 2022-12-16 19:15:03下载
- 积分:1
-
Direct spread spectrum communication system of pseudo
直接扩展频谱通信系统的伪随机码相位和频偏的串行捕获程序。-Direct spread spectrum communication system of pseudo-random code phase and frequency offset of the serial capture program.
- 2022-04-11 12:10:14下载
- 积分:1
-
PDF格式的串口通信程序编程大全
好不容易找到的,支持一下啊...
PDF格式的串口通信程序编程大全
好不容易找到的,支持一下啊-PDF format of the serial communication programming Guinness finally found to support what ah
- 2023-03-02 23:30:04下载
- 积分:1
-
ps2键盘外部中断20键
有需要的 可以使用
ps2键盘外部中断20键
有需要的 可以使用-external interrupt ps2 keyboard has 20 keys need to use
- 2022-02-26 01:33:23下载
- 积分:1
-
串口收发程序
fafasdfasfasfasdfasfasfas
fsdafasfasdgfdhfdghgdfjhdfghdgf
hdfghfdghfdghdfghdfghdfg// DlgSend.cpp : implementation file
// Download by http://www.codefans.net
#include "stdafx.h"
#include "SCC.h"
#include "DlgSend.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgSend dialog
CDlgSend::CDlgSend(CWnd* pParent /*=NULL*/)
: CDialog(CDlgSend::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgSend)
m_nCycMode = 0;
m_nCycSel = 0;
m_unTime = 1000;
m_unLine = 1;
m_unStart = 1;
m_unEnd = 2;
m_unTrigger = 0;
//}}AFX_DATA_INIT
}
void CDlgSend::DoDataEx
- 2022-03-05 20:00:41下载
- 积分:1