zoukankan      html  css  js  c++  java
  • 蛙蛙推荐:c#使用winsock api实现同步Socket服务端

    由于大多讲解winsock的代码都是c++的,而winsock只是一些windows api的使用,为了帮助.net程序员深入的理解winsock2,我把.net下同步socket的实现代码拆了出来,简化了一下,大家有空可以调试一下看看。

    注意
    1、只能跑在win2000以上的系统
    2、只支持tcp协议,
    3、支持ipv4

    改动
    1、去掉计数器、日志等逻辑
    2、不支持异步,完成端口模型,等有时间了,把完成端口那部分也拆分出来给大家。

    为了不让本帖太短,贴一些代码中使用到的winsock函数的原型,大家要想开发高性能的网络程序,就得去深入理解winsock的那几个函数,可以看看《windows网络编程》的第7、8、9章

        OSSOCK

    WawaSocket.zip

    研究了几天.net socket里对IOCP的封装,发现确实有些复杂,不打算往出拆代码了,自己理解IOCP的代码,用平台调用写一个示例吧。甭管.net再发展,remoting,wcf啥的,底层还是有限的这么几个函数,真的推荐大家好好看看,到时候网络程序出问题了,抓dump,看调用栈也知道到底阻塞到哪个API了,为什么会阻塞。学windbg也就是那几个命令而已,关键你还得了解clr的内部运行机理,win32api,crt,il甚至汇编等。

  • 相关阅读:
    LeetCode 面试题56-l .数组中数字出现的次数
    此文件不能被打印.请尝试用正确的应用程序打开它,然后从那里打印
    SessionAttribute cannot be resolved to a type
    {转}onenote快捷
    linux目录结构
    【转】C#事件和委托的理解
    【转】微信小程序实现微信支付功能(可用)
    【转】mysql 用户及权限管理 小结
    使用FileWriter把文件写入 ,使用 File Reader把文件读出 到控制台
    Intellij IDEA 中 使用 Git
  • 原文地址:https://www.cnblogs.com/onlytiancai/p/1241317.html
Copyright © 2011-2022 走看看