摘要: 声明一个添加任务接口,信号和槽函数各两个(返回类型void和非void)。添加任务接口的参数为stdfunction类型。信号与槽函数的第一个参数是stdfunction类型的任务,第二个参数则为任务的返回值。 class TestQtMainThread : public QWidget { Q_ 阅读全文
posted @ 2022-05-09 17:19 ithepug 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 该文章是之前计算机网络课程的一个作业,所以排版是实验报告的形式。也只对P2P网络中使用到的技术的概念进行介绍,想看深入介绍的可以点“X”了。。。然后之前看关于Tox协议的介绍好像也不多,这篇简单了介绍了Qt + Tox的使用。 实验名称 使用Tox协议进行p2p聊天 实验目的 了解和使用Tox端到端 阅读全文
posted @ 2021-10-06 23:24 ithepug 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 逐步构建HTTP服务器(五)——Reactor模式 如何深刻理解Reactor和Proactor? Schmidt D C . Reactor - An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for 阅读全文
posted @ 2021-10-06 22:51 ithepug 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 逐步构建HTTP服务器(四)——设计并使用缓冲 设计缓冲 设计缓冲的目的:解决不能一次read和write全部数据、未及时将套接字接受缓冲区读出造成的反复触发读事件就绪(busy-loop)。 Linux多线程服务端编程 7.4.2 为什么non-blocking 网络编程中应用层buffer是必需 阅读全文
posted @ 2021-08-16 22:58 ithepug 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 逐步构建HTTP服务器(三)——IO多路复用+非阻塞IO 为什么使用非阻塞? 在(一)中提到我们目前的使用的都是阻塞的socket。 考虑套接字发送缓冲区已满,write阻塞,而此时又有接受缓冲区可供读取。引入非阻塞IO,可避免进程在可做任何有效工作期间发生阻塞。 在man select 中提到使用 阅读全文
posted @ 2021-08-08 21:35 ithepug 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 逐步构建HTTP服务器(二)——初识IO多路复用 上篇构建了一个简单的TCP服务器,基本结构: socket(); // 获取一个阻塞 'TCP套接字' bind(); // 'TCP套接字' 绑定地址 listen(); // 'TCP套接字' 监听 whlie(1) { accept(); // 阅读全文
posted @ 2021-08-08 21:35 ithepug 阅读(108) 评论(0) 推荐(0) 编辑
摘要: HTTP | MDN (https://developer.mozilla.org/zh-CN/docs/Web/HTTP) 我们知道HTTP依赖于面向连接的TCP进行消息传递。所以我们实际上是要构建一个能够接受TCP连接并通过TCP发送HTTP报文给用户浏览器的服务器。 如何构建一个TCP服务器? 阅读全文
posted @ 2021-08-02 11:43 ithepug 阅读(113) 评论(0) 推荐(0) 编辑
摘要: title: Effective C++ 学习笔记(四)设计与声明 date: 2021-03-15 09:20:42 tags: cpp 参考书籍《Effective C++:改善程序与设计的 55 个具体做法(第三版)》 18. 让接口容易被正确使用,不易被误用 为什么要? 接口被误用 clas 阅读全文
posted @ 2021-04-19 21:08 ithepug 阅读(76) 评论(0) 推荐(0) 编辑
摘要: title: Effective C++ 学习笔记(三)资源管理 date: 2021-03-02 20:12:47 tags: cpp 参考书籍《Effective C++:改善程序与设计的 55 个具体做法(第三版)》 13. 以对象管理资源 为什么要? 对象很可能会被忘记 delete 示例 阅读全文
posted @ 2021-03-14 11:08 ithepug 阅读(81) 评论(0) 推荐(0) 编辑
摘要: UVa1606 Amphiphilic Carbon Molecules 代码仓库 1606.cc 由于开始没有想法,所有直接看了刘汝佳老师的代码。等过几天把代码忘了,再尝试自己写一下吧(如果还想得起来)。 话不多说,直接看图。 1.首先我们先选择一个点作为中心点。 for (int i = 0; 阅读全文
posted @ 2021-03-01 21:59 ithepug 阅读(93) 评论(0) 推荐(0) 编辑