- 博客(24)
- 收藏
- 关注
原创 bufferevent示例
答案: 当服务器收到新的连接请求的时候, 会自动触发listener_cb回调函数, 该函数中有往bufferevent缓冲区中写入的操作(调用bufferevent_write), 接着又会触发写回调函数conn_writecb的执行, 这个回调函数中调用了bufferevent_free, 该函数能够释放bufferevent, 同时会关闭socket连接.问题:hello-world.c代码中当使用nc客户端测试的时候为什么nc收到hello world之后就立刻关闭了.
2023-08-23 16:44:49
137
原创 基于event实现的tcp服务器
可以进行如下的测试重现异常情况: 先后在终端A和B上执行nc 127.1 8888命令, 然后ctrl+c结束掉终端A上的nc命令, 再次进如到终端B上, 则会出现异常情况.(原因是由于connev是一个全局变量, 所以connev只能保留最后一次所赋的值, 当客户端退出后, 服务端会调用event_del(connev);若先结束终端B上的nc命令, 不会出现异常情况.在堆区开辟空间,利用event_new函数最后一个参数传递读事件。
2023-08-23 15:20:57
121
原创 常用socket函数封装及使用多进程和多线程实现服务器并发
注意:accept或者read函数是阻塞函数, 会被信号打断, 此时不应该视为一个错误。2.防止子进程在信号注册前退出,从而产生僵尸进程。注意:1.循环创建子进程最好循环回收,防止产生僵尸进程。>>> 主进程中对子进程进行回收。
2023-08-16 17:21:03
166
原创 数据结构----队列
前提:利用之前已经写好的动态数组实现队列的顺序存储,数组首地址做对头。三个源文件:动态数组的具体实现文件、队列的具体实现文件和测试文件。两个头文件:动态数组头文件和队列的头文件。
2023-08-16 09:51:57
60
1
原创 数据结构-----栈
几乎所有的编译器都具有检测括号是否匹配的能力,那么如何实现编译器中的符号成对检测?如下字符串:5+5*(6)+9/3*1)-(1+3(
2023-08-10 14:52:47
56
1
原创 解决Visual Studio中“无法打开源文件”错误和移动程序文件夹后出错
解决Visual Studio中“无法打开源文件”错误和移动程序文件夹后出错
2023-01-31 17:27:49
5845
1
原创 Windows下C语言多线程实现UDP通信程序recvfrom()函数出现10054错误:远程主机强迫关闭了一个现有的连接
Windows下C语言多线程实现UDP通信程序recvfrom()函数出现10054错误:远程主机强迫关闭了一个现有的连接。 问题:将recvfrom函数置于一路线程中,sendto函数置于主线程中,当单独运行下面程序时recvfrom()函数出现10054错误。
2022-11-28 21:56:06
1195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人