随笔分类 - C#/网络编程
摘要:Socket缓冲区探讨 本文主要探讨java网络套接字传输模型,并对如何将NIO应用于服务端,提高服务端的运行能力和降低服务负载。 1.1 socket套接字缓冲区 Java提供了便捷的网络编程模式,尤其在套接字中,直接提供了与网络进行沟通的输入和输出流,用户对网络的操作就如同对文件操作一样简便。在客户端与服务端建立Socket连接后,客户端与服务端间的写...
阅读全文
摘要:中文版:http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-478C-849A-02C8395D0995/VS2012_ULT_chs.iso英文版:http://download.microsoft.com/download/B/0...
阅读全文
摘要:using System;using System.Collections.Generic;using System.Text;using System.IO;namespace Xse{ namespace Protocol { public interface IPacket { byte[] ToArray(); } public interface IBinaryData { void write(BinaryPacketWriter w); ...
阅读全文
摘要:拆包一直是个硬伤呀,MLGB的,服务端各种乱数据,果断整理下拆包思路:设计一个网络协议,一般都会分包,一个包就相当于一个逻辑上的命令。1、如果我们用udp协议,省事的多,一次会收到一个完整的包,但UDP不可靠,顺序也不能保证,当然像QQ对UDP封装的很好,模拟了TCP的可靠性。网上也有一些封装好的可靠的UDP组件,大家用的话可以找找。关于用什么协议好这个问题,本贴不讨论。2、如果我们用TCP协议不是长连接,像HTTP(不考虑KeepAlive)那样,一个连接上只发送一个包,我们也会很清晰的区分出接受到的每一个包。3、还有就是我们还用TCP长连接,但每次发送固定长度的包,如果要发送的数据长度不够
阅读全文
摘要:1.当recv返回值为0是表示对方已经正常(msdn说是完美的)的断开连接.2.当recv返回socket_error时,说明对方已经断开连接,但是可能是非正常断开(断网或者客户端进程结束).服务端Socket如何释放客户端连接的资源0 悬赏园豆:20 [待解决问题] 浏览: 682次一个请求/应答模式的Socket应用,作为服务端接收客户端的请求数据,然后响应客户端,采用异步监听和异步接收方式。现在的问题是如何判断一个客户端是否已经关闭了,还有就是如何释放客户端连接请求过来的Socket所占用的资源。因为在运行的时候服务端Socket的进程内存占用一直在飙升,到最后就是导致服务挂掉。求帮助,
阅读全文
摘要:注意,这是公司内部一位同事整理的,我经过这位老兄(http://hi.csdn.net/fullsail)的同意,把他转到我的blog。原文英文地址: http://www.mvdirona.com/jrh/talksAndPapers/JamesRH_Lisa.pdf网上应该只能找到(上)和(中),没有下篇,这个文章是从程序员杂志上一章章抠出来的,好东西值得这样折腾,感谢原文的翻译者。大规模服务设计部署经验谈本文中提出的最佳实践,来自于作者多年大规模服务设计和部署的经验,为设计、开发对运营友好的服务提供了一系列良好的解决方案。■ 文/James Hamilton 译/赖翥翔1 ...
阅读全文