文章分类 - Scoket
摘要:在处理TCP数据的时候我们需要考虑一个粘包的问题,所谓的粘包就是本次接收的数据不一定完整对应对方发送的数据.对方发送的一次数据有可能需要接 收多次才能完成,实际要处理的情况要复习一点;为了解决点包问题所以必须要制订数据分析协议来处理,常用的解决方法有两种:一种是基于结束符的方式,而另 一种则是在消息...
阅读全文
摘要:对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和...
阅读全文
摘要:http://www.cnblogs.com/luomingui/p/3191025.html
阅读全文
摘要:1. Introduction - Native Win32 IOCPI/O Completion Ports (IOCP) supported on Microsoft Windows platforms has two facets. It first allows I/O handles li...
阅读全文
摘要:IntroductionMicrosoft created the SocketAsyncEventArgs class to help you write scalable, high performance socket server code. SocketAsyncEventArgs use...
阅读全文
摘要:class Program{ //This variable determines the number of //SocketAsyncEventArg objects put in the pool of objects for receive/send. //The valu...
阅读全文
摘要:几天前在博问中看到一个C# Socket问题,就想到笔者2004年做的一个省级交通流量接收服务器项目,当时的基本求如下:接收自动观测设备通过无线网卡、Internet和Socket上报的交通量数据包全年365*24运行的自动观测设备5分钟上报一次观测数据,每笔记录约2K大小规划全省将有100个左右的...
阅读全文
摘要:本文转载自极客范,由极客范-八卦爱好者翻译自Himanshu Arora。原文链接:Himanshu Arora译文链接:http://www.geekfan.net/7773/尽管大多数最终用户都不关心Internet是如何工作的,但是我相信你们当中的仍然会有一些人对Internet运转的基本原理非常感兴趣。在这篇文章中,我们会通过阐释一个数据包从源到目的地的征程,来试着拨开互联网的第一层神秘面纱。由此出发,我们会尽量让本文的内容保持简单基础。在更进一步之前,让我们先快速简要地理解一下DHCP和DNS的概念。DHCP你有没有想过你的计算机是如何获取IP地址的?嗯……首先你必须知道计算机获取I
阅读全文
摘要:概念介绍阻塞(blocking)、非阻塞(non-blocking):可以简单理解为需要做一件事能不能立即得到返回应答,如果不能立即获得返回,需要等待,那就阻塞了(进程或线程就阻塞在那了,不能做其它事情),否则就可以理解为非阻塞(在等待的过程中可以做其它事情)。同步(synchronous)、异步(asynchronous): 你总是做完一件再去做另一件,不管是否需要时间等待,这就是同步(就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,即此时不能做下一件事情);异步则反之,你可以同时做几件事,并非一定需要一件事做完再做另一件事(当一个异步过程调用发出后,调用者不能立刻得到结果,此
阅读全文
摘要:以太网(Ethernet)介绍以太网(Ethernet)是一种计算机局域网组网技术,wiki 有相关介绍,请移步这里。Ethernet V2 是世界上最早的以太网标准协议。目前IEEE802.3为以太网标准。Ethernet V2 协议与 IEEE802.3 标准只有很小的差别,可以将 802.3 局域网简称为“以太网”。Ethernet V2是目前广泛使用的以太网协议。 以太帧格式目前我们最经常使用的其实是1982年发布的Ethernet II标准,Ethernet II标准的帧格式如下: 从上图可以看到 Ethernet II帧,目的地址、源地址字段各占6个字节,目的地址字段确定帧的接收者
阅读全文
摘要:线程模型SocketAsyncEventArgs编程模式不支持设置同时工作线程个数,使用的NET的IO线程,由NET底层提供,这点和直接使用完成端 口API编程不同。NET底层IO线程也是每个异步事件都是由不同的线程返回到Completed事件,因此在Completed事件需要对用户对象进行 加锁,...
阅读全文
摘要:上传断点续传断点续传主要是用在上传或下载文件,一般做法是开始上传的时候,服务器返回上次已经上传的大小,如果上传完成,则返回-1;下载开始的时候,由客户端上报本地已经下载大小,服务器根据位置信息下发数据,因此上传下载协议都需要带Size大小,例如我们协议格式。上传开始:客户端->服务器{[Reques...
阅读全文
摘要:协议种类开发Socket程序有两种协议类型,一种是用文本描述的,类似HTTP协议,定义字符集,好处是兼容性和调试方便,缺点是解析文本会损耗一些性 能;一种是用Code加结构体,定义字节顺序,好处是性能高,缺点是兼容性和调试不方便。这个可以根据应用场景灵活选择,如果您的应用相对稳定,需求变化 少,性能...
阅读全文
摘要:UTF-8UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)。使用UTF-8的好处是现在一些手机平台都是...
阅读全文
摘要:守护线程在服务端版Socket编程需要处理长时间没有发送数据的Socket,需要在超时多长时间后断开连接,我们需要独立一个线程 (DaemonThread)来轮询,在执行断开时,需要把Socket对象锁定,并调用CloseClientSocket来断开连接,具体处理代码如 下:namespace S...
阅读全文
摘要:粘包使用TCP长连接就会引入粘包的问题,粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。粘 包可能由发送方造成,也可能由接收方造成。TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据,造成多个数据包的粘连。如果接收进程 不及...
阅读全文
摘要:在编写服务端大并发的应用程序,需要非常注意缓存设计,缓存的设计是一个折衷的结果,需要通过并发测试反复验证。有很多服务程序是在启动时申请足够 的内存空间,避免在运行期间再申请空间,这种是固定空间申请。还有一种是在运行期间动态增长的缓存设计,随着运行动态申请内存,这种事动态空间申请。这两 种机制各有优劣...
阅读全文
摘要:例子主要包括SocketAsyncEventArgs通讯封装、服务端实现日志查看、SCOKET列表、上传、下载、远程文件流、吞吐量协议,用 于测试SocketAsyncEventArgs的性能和压力,最大连接数支持65535个长连接,最高命令交互速度达到250MB/S(使用的是 127.0.0.1的...
阅读全文
摘要:源代码地址原文:How to use the SocketAsyncEventArgs class. by Marcos Hidalgo Nunes Download client - 4.09 KB Download server - 7.5 KB引言我 一直在探寻一个高性能的Socket客户端代...
阅读全文
摘要:在.NET 3.5里System.Net.Sockets空间下有一组增强功能的类,提供可供专用的高性能套接字应用程序使用的可选异步模 式,SocketAsyncEventArgs 类就是这一组增强功能的一部分。该类专为需要高性能的网络服务器应用程序而设计。应用程序可以完全使用增强的异步模式,也可以仅...
阅读全文
浙公网安备 33010602011771号