网络编程
文章平均质量分 55
Azure小诶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unix网络编程学习日记(一):半双工非阻塞socket客户端的实现
socket编程I/O模型简述,和一个简单的socket客户端的实现原创 2017-08-08 19:31:13 · 662 阅读 · 0 评论 -
Unix网络编程学习日记(二):多线程全双工socket客户端的实现
简单的多线程socket客户端的实现原创 2017-08-08 19:40:00 · 1117 阅读 · 0 评论 -
Unix网络编程学习日记(三):多进程全双工socket客户端的实现
多进程实现全双工socket客户端原创 2017-08-08 19:58:49 · 857 阅读 · 0 评论 -
Unix网络编程学习日记(四):基于select的单线程半双工socket客户端的实现
select()和pselect()允许程序监控多个文件描述符,等待一个或多个文件描述符变为I/O操作的“就绪”状态。一个“就绪”状态的文件描述符被认为可以接受内核提供的IO操作,比如不被阻塞地“read()”。 有趣的是,Unix的标准输入/输出也是一类文件描述符,可以和socket描述符同时被监听。所以,可以用select监听socket和stdin,保证实时接收网络数据的同时又不阻塞住键盘输原创 2017-08-15 09:02:30 · 501 阅读 · 0 评论 -
Linux进程与线程的比较
进程与线程的关系在Linux 2.6以后,系统使用了一种新的pthread线程库NPTL(Native POSIX Threading Library),但其实系统底层依旧使用轻量级进程(LWP)来实现线程这一机制,所以线程与进程的关系颇为繁杂。 首先要明确的是,某一进程中的所有线程共用同一“进程id”(pid)。但为了管理不同线程对系统资源的使用,这里引入了一个“线程组编号”(tgid)的概念。原创 2017-08-25 10:29:57 · 521 阅读 · 0 评论 -
Unix网络编程学习日记(五):基于epoll与管道的socket客户端
这又是一个不成熟的想法。为了尽可能减少对多线程、进程的依赖,减少内存占用,将之前的客户端程序中“发送”和“接收”线程合二为一,尝试使用非阻塞模式socket配合I/O复用实现socket客户端。不过,查阅资料后发现I/O复用更适合用于服务器程序而不是客户端。 其中很重要的一个原因是,使用I/O复用模型时需要对流进行监控,动态调用流对应的处理程序。对于一个简单的客户端程序,动态接收服务器发来的消息很原创 2017-09-01 14:50:20 · 714 阅读 · 0 评论
分享