随笔分类 - socket
摘要:前言 对于服务端,达到高性能、高扩展离不开异步。对于客户端,函数执行时间是1毫秒还是100毫秒差别不大,没必要为这一点点时间煞费苦心。对于异步,好多人还有误解,如: 异步就是多线程;异步就是如何利用好线程池。异步不是这么简单,否则微软没必要在异步上花费这么多心思。本文就介绍异步最新的实现方式:Tas
阅读全文
摘要:前言 出于安全性考虑,浏览器对网页调用本地资源做了诸多限制。单纯的js是不能调用本地摄像头的,最常用的解决方案是通过ocx来实现。ocx是IE浏览器的扩展插件,并不是通用标准,很多浏览器并不支持ocx。有没有别的方案实现视频播放?作者另辟蹊径,通过非常规手段实现了摄像头视频捕做;这种方案采用标准js
阅读全文
摘要:前言 http协议是互联网上使用最广泛的通讯协议了。web通讯也是基于http协议;对应c#开发者来说,asp.net core是最新的开发web应用平台。由于最近要开发一套人脸识别系统,对通讯效率的要求很高。虽然.net core对http处理很优化了,但是我决定开发一个轻量级http服务器;不求
阅读全文
摘要:前言 为了探测本机或对方开放了哪些端口,需要用到端口扫描程序。扫描端口的原理很简单:就是尝试连接对方;如果成功,对方就开放了此端口。扫描程序的关键是速度,如果一次只能发起几个连接,显然速度太慢。如果对方的端口没开放,发起一次连接到知道连接失败通常需要几秒的时间。 本程序可以实现一次性发起1000个连
阅读全文
摘要:前言 本人从事编程开发十余年,因为工作关系,很早就接触socket通讯编程。常言道:人在压力下,才可能出非凡的成果。我从事的几个项目都涉及到通讯,为我研究通讯提供了平台,也带来了动力。处理socket通讯对初学者而言,具有很大的挑战性。我有个梦想:能不能开发一套系统,能很好的实现性能和易用性的统一。
阅读全文
摘要:前言 在windows平台下实现高性能网络服务器,iocp(完成端口)是唯一选择。编写网络服务器面临的问题有:1 快速接收客户端的连接。2 快速收发数据。3 快速处理数据。本文主要解决第一个问题。 为什么要用AcceptEx 传统的accept函数能满足大部分场景的需要;但在某些极端条件下,必须使用
阅读全文
摘要:前言 本文主要介绍我开发的几款软件产品,大概介绍一下功能。可以让读者了解本人的开发能力,所擅长的方面。有相关开发需求可以联系作者。 本人开发软件多年,从事的行业也多种多样;自然接触了不同的业务,开发了各类软件产品。工作的主线一直是windows下C/S模式软件开发; 最近也开始学习asp.net c
阅读全文
摘要:假设一种情景:TCP服务器有1万个客户端连接,如果客户端5秒钟不发数据,则要断开。服务端如何检测客户端是否超时?这看起来是一个非常简单的问题,其实不然! 最简单的处理方法是:启动一个线程,每隔一段时间,检查每个连接是否超时。每次处理需要1万次检查。计算量太大!检查的时间间隔不能太小,否则大大增加计算
阅读全文
摘要:前言 TCP\IP已成为业界通讯标准。现在越来越多的程序需要联网。网络系统分为服务端和客户端,也就是c\s模式(client \ server)。client一般有一个或少数几个连接;server则需要处理大量连接。大部分情况下,只有服务端才特别考虑性能问题。本文主要介绍服务端处理方法,当然也可以用
阅读全文
摘要:前言 多年前开发了一套网络库,底层实现采用IOCP(完成端口)。该库已在公司多个程序中应用;经过多次修改,长时间检验,已经非常稳定高效。 最近把以前的代码梳理了一下,又加进了一些新的思路。代码结构更加合理,性能也有所提升。打算将该库一些的知识点写出来,以供参考。 服务端要在多个端口监听,这种场合并不
阅读全文
摘要:分布式系统有很多成熟的解决方案。如:微软的WCF。WCF太过于复杂,配置也麻烦。其实可以自己动手设计一个小的分布式系统。系统的原理完全在自己掌握之中,可以根据业务随机而变。这里展示远程调用最核心最基本的处理逻辑,其实远程调用并不复杂神秘。 分布式系统其实是数据流的交换。数据必须快速的从一段传送到另一
阅读全文
摘要:本人开发socket通讯多年了,一直干着“重复发明轮子”工作,这种工作方式效率低下,容易出错!
重复的事情做多了,也会出现“灵光“!何不自己设计一套中间件,在此基础上,再设计应用层协议。就可以避免“重复发明轮子”。
阅读全文
摘要:异步socket不是一个新的概念,但是,对于普通开发人员来说很难掌握。
网上也有许多这方面的文章。大都比较零散。
因工作的需要,我编写了此封装库。
本人认为较好的完成对异步socket的封装!
即不失性能,又非常易于使用。
此库将socket处理分为几个模块,清晰明了。
有些模块处理可能没达到最佳状态,后续也不难修改。
阅读全文