
网络
文章平均质量分 75
fengasdfgh
这个作者很懒,什么都没留下…
展开
-
OSI七层模型详解
发现一篇写得很好的文章,与大家分享: OSI(Open System Interconnection Reference Model,OSI/RM)模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),转载 2017-02-28 23:27:51 · 866 阅读 · 0 评论 -
搭建简单的http服务器
开发语言C++,平台为Linux。 主要流程为:服务器获得请求–>响应并处理请求–>返回结果。这里着重讲怎么处理请求。 主程序在获得一个请求后会开辟一个线程来处理请求 流程图如下。 hand_cgi函数流程图 cgi程序流程图。 代码:#include"http.h"int ret = 0;void printf_log(string s){ //cout原创 2017-08-03 06:12:55 · 6055 阅读 · 0 评论 -
理解协程的运行流程
这是我整合自己对协程的一些理解,文章中的图我有些是在网上直接拷贝的,在这里感谢原作者。这是http服务器整合协程的流程图: 代码图: 从控制台传进来的参数allfont,font,每次循环会创建font个task,task的概念可以说就是协程。协程通过stCoRoutine_t结构来描述,就像我们进程的task_struct一样,保存着运行时,关于协程运行环境的所有信息,所以每个task有一原创 2017-08-04 16:11:39 · 3405 阅读 · 0 评论 -
用vb.net开发的简易(通用)上位机
这里写的是上位机基本的程序,有什么额外功能的话可以自己加上。我是参与别人项目里做的,主要实现了自动检测,断点重连,发送检测消息。因为要实时使用,所以要最大程度的避免程序崩溃,因此程序里使用了比较多的try模块。同是为了让别人使用起来方便,没有做其他修饰的东西。Public Class Form1//用到的全局变量 Public socketi As Net.Sockets.Socket'套原创 2017-08-04 01:22:42 · 6756 阅读 · 0 评论 -
Mysql的接口函数
mysql_affected_rows() 返回被最新的UPDATE, DELETE或INSERT查询影响的行数。 mysql_close() 关闭一个服务器连接。 mysql_connect() 连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。 mysql_change_user() 改变在一个打开的连接上的用户和数据库。 mysql_c转载 2017-04-15 20:18:51 · 541 阅读 · 0 评论 -
http协议支持的6种请求格式
标准Http协议支持六种请求方法,即: 1,GET 2,HEAD 3,PUT 4,DELETE 5,POST 6,OPTIONS 1, GET可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。 GET的url格式原创 2017-04-19 11:17:05 · 3001 阅读 · 0 评论 -
setsockopt解决套接字绑定失败
在编程的时候遇到的问题,在网上找到了原因,这这里记录一下,方便以后查阅。bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。也可以在客户端设置中使用 这个函数,以便限制应当供出去的连接所使用的接口。bind 最常见的用法是关联端口号和服务器,并使用通配符地址(INADDR_ANY),它允许任何接口为到来的连接所使用转载 2017-04-10 03:59:47 · 7672 阅读 · 0 评论 -
epoll函数及原理
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水平原创 2017-03-22 23:20:49 · 1922 阅读 · 0 评论 -
poll函数详解及原理
poll函数实现和select极为相似,但是它们的接口并不相同:int poll(struct pollfd fdarray[], nfds_t nfds, int timeout); int select(int maxfdp1, fd_set restrict readfds, fd_set *restrict expectfds, struct timeval restrict tvptr原创 2017-03-22 15:34:07 · 14744 阅读 · 2 评论 -
Select函数详解及原理
select函数原型:int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);select函数的参数将告诉内核:(1) 我们所关心的描述符。(2) 对于每个描述符我们所关心的条件(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异原创 2017-03-22 15:12:17 · 3039 阅读 · 0 评论 -
在http服务器里使用协程
首先在使用协程前我们要明白什么是协程?协程相比线程有什么好处? 大概来说:协程是一种用户态的轻量级线程。 相比线程它的开销更小,不需要线程锁,成本低,一个单核cpu可支持上万个协程。 这里推荐一篇博客: http://blog.youkuaiyun.com/qq910894904/article/details/41699541我们这里使用腾讯协程库libco,首先下载libco源码。把它放在h原创 2017-08-04 16:38:35 · 1260 阅读 · 2 评论