
网络编程框架
文章平均质量分 89
Lawrence_121
千里之行,始于足下
展开
-
IO并发之多进程及多线程实现
服务器demo: #include "lib.h" //封装的头文件 #define SERVER_PORT 6666 //多线程实现 void * pthread_fun(void *arg) { char buf[1024]={0}; int confd=*(int *)arg; while(1) { memset(buf,0,sizeof(buf)); ...原创 2018-08-22 19:05:33 · 827 阅读 · 1 评论 -
IO多路复用之select总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 ...原创 2018-08-21 19:33:46 · 1886 阅读 · 1 评论 -
select、poll、epoll之间的区别
(1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。 (2)poll==>时间复杂度O(n) poll本质上和select没有区别,它将用...转载 2018-08-29 16:19:54 · 140 阅读 · 0 评论 -
socket详解
什么是Socket? socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件。 常见的模式有:c/s模式和PtP模式。 套接字的功能: ...原创 2018-08-25 14:23:27 · 615 阅读 · 0 评论 -
基于socket通讯的网络聊天室(上)
需求分析: 1、 服务器端:负责处理用户发来的各种信息,管理用户的动作(注册、登陆、一对一私聊、查看在线人数)和管理用户的信息。 2、 客户端:主要用于查看在线人数、发送信息给特定用户、群聊、增删改查好友等功能, 总体设计: 本聊天室系统采用了c/s形式。服务器主要是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户的聊天...原创 2018-09-01 16:57:52 · 10915 阅读 · 5 评论 -
基于socket通讯的网络聊天室(中)
基于socket通讯的网络聊天室(上) 项目总结: 经过三四天的时间,项目终于搞完了,基本实现了私聊,群聊,在线查看聊天记录,下载聊天记录等功能,但是界面做的不是很好,想着用QT做的时候,再把界面完善一下。做完与别人交流的时候,发现自己和别人有好几处不一样,我在socket传输文件时,传的是字符串,有的人传的是结构体。有人觉得账户和密码要组包发送,不然要是用户发了账户,然后人走开了...原创 2018-09-01 21:32:05 · 2802 阅读 · 0 评论