-
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
-
完成端口的例子代码,或者从程序存储器中读取代码,然
完成端口的例子代码,或者从程序存储器中读取代码,然-Completion ports code examples, or read from the program memory code, Ran
- 2023-04-15 15:30:03下载
- 积分:1
-
程序如何读写操作窗口剪贴板文件
DOS程序如何读写Windows剪贴板才解决文件共享冲突问题-procedures how to read and write DOS Windows clipboard file-sharing to solve conflict
- 2022-03-22 21:23:15下载
- 积分:1
-
一个ISAPI服务器扩展程序,windows下网络通信编程
一个ISAPI服务器扩展程序,windows下网络通信编程-an ISAPI server expansion procedures, windows Communication Network Programming
- 2022-01-25 19:29:35下载
- 积分:1
-
利用oSIP协议栈开发的测试程序,简单的调用实现的乐趣…
利用osip协议栈开发的测试程序,简单实现了UAS的呼叫功能-Use oSIP protocol stack developed test procedure, a simple call to achieve a functional UAS
- 2022-03-10 02:03:14下载
- 积分:1
-
Simple Server With Parameter
带有wsgiref的简单服务器和带有请求的简单客户端。
- 2022-06-02 16:46:05下载
- 积分: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
-
ami码,单极性不归零码的matlab仿真的实现,属于本人课内作业...
ami码,单极性不归零码的matlab仿真的实现,属于本人课内作业-ami yards Unipolar not NRZ Simulation of Matlab, I belong to the reverse operation
- 2022-02-05 03:34:03下载
- 积分:1
-
机顶盒和数字电视DTV的源代码
dtv source code for stb and dtv
- 2022-01-22 06:26:42下载
- 积分:1
-
本文讲述了linux操作系统下网络编程的相关步骤。
Linux的源码里,网络接口的实现部份是非常值得一读的,通过读源码,不仅对网络协议会有更深的了解,也有...
本文讲述了linux操作系统下网络编程的相关步骤。
Linux的源码里,网络接口的实现部份是非常值得一读的,通过读源码,不仅对网络协议会有更深的了解,也有助于在网络编程的时候,对应用函数有更精确的了解和把握。
本文把重点放在网络接口程序的总体结构上,希望能作为读源码时一些指导性的文字。
-This article describes network programming under linux operating system of the relevant steps. Linux source code, the network interface to achieve most of it is very worth reading, by reading the source, not only on the network will have a deeper understanding of the agreement, will also help in network programming when the application has a more precise function understanding and grasp. This article focused on the network interface on the overall structure of the procedure, hoping for some guidance when reading source code of the text.
- 2023-05-26 17:40:04下载
- 积分:1