上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 写了这么长时间的代码,发现自己对TCP/IP了解的并不是很透彻。虽然会用C#的HttpClient类来进行网络编程,也可以使用Chrome的开发者工具来检测每一次的HTTP请求的报文头与报文体,也知道cookie的存在方式,但是对于这些数据怎么在网络上传输还是很模糊,数据是怎么从客户端的文件或者字符串转换为二进制数并且传送到服务器端的?为了弄明白这些问题,最近大致的读了读《TCP-IP详解(卷一、... 阅读全文
posted @ 2017-11-04 08:55 迷雾千寻 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 在C#编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解。TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以... 阅读全文
posted @ 2017-11-04 08:44 迷雾千寻 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 (3)IO多路复用(IO Multiplexing):即经典的R... 阅读全文
posted @ 2017-11-03 13:45 迷雾千寻 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 没有啥复杂的东西,考虑清楚需求,就可以很自然的衍生出这些解决方案。 一开始大家想要同一时间执行那么三五个程序,大家能一块跑一跑。特别是UI什么的,别一上计算量比较大的玩意就跟死机一样。于是就有了并发,从程序员的角度可以看成是多个独立的逻辑流。内部可以是多cpu并行,也可以是单cpu时间分片,能快速的切换逻辑流,看起来像是大家一块跑的就行。 但是一块跑就有问题了。我计算到一半,刚把多次方程解到最后... 阅读全文
posted @ 2017-11-03 08:58 迷雾千寻 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 这是初学者最常问及的问题,一些面试官也很喜欢问这个问题 。 当把硬盘上的资源调入内存以后,将有一个句柄指向它,但是句柄只能指向一个资源。而且句柄知道所指的内存有多大。还有指针,指针指向地址,它不知道分配的内存有多大。 但是如果你定义一个句柄,然后在VC里面右击鼠标,选择"go to definition of handle”,你会发现它的本质就是一个指针,但是它的作用不同于指针。它和通常意义上的指... 阅读全文
posted @ 2017-11-02 08:42 迷雾千寻 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不... 阅读全文
posted @ 2017-11-01 16:38 迷雾千寻 阅读(254) 评论(0) 推荐(0) 编辑
摘要: “阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者*主动等待这个*... 阅读全文
posted @ 2017-11-01 09:07 迷雾千寻 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一个很形象的例子: 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。 作者:常溪玲链接:https://www.... 阅读全文
posted @ 2017-10-31 20:09 迷雾千寻 阅读(231) 评论(0) 推荐(0) 编辑
摘要: TCP通信粘包问题分析和解决(全) 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小、数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机... 阅读全文
posted @ 2017-10-30 22:09 迷雾千寻 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言 阅读全文
posted @ 2017-10-30 14:33 迷雾千寻 阅读(1420) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页