zoukankan      html  css  js  c++  java
  • 基于dotnet2.0的联通sgip1.2协议二级网关源码


    作者:jll                       日期:2006-04-30
    出处:http://jll.cnblogs.com

    一、前言
            2005年7月下旬至8月中旬,我做了一个实现联通sgip1.2二级网关的项目,由于种种原因这个项目只完成了核心模块的2/5左右。此系统的源码几番周折,从硬盘转到邮箱,又从邮箱转到QQ网络硬盘。我想,应该赶在它“发霉”之前共享出来,一则可以让需要有的朋友作为参考; 二则或许可以得到相关朋友的指正,以此提高自已的水平。

    二、为什么要选择.net 2.0作为开发平台
             开始这个项目的时候,我有几个会用的平台或工具作为选择:
            (1) Delphi             这东东就不用说了,组件多,开发资料也丰富,Indy 开发网络程序就足够强大
            (2) C++ Builder    跟Delphi差不多,但是调用Socket API方便些
            (3) .net                 在多线程编程方面相对简单,同时对Socket也提供了很好地封装
            之所以选择.net, 一方面是看中它强大的多线程库的支持,另一方面则是为了体验一下.net的威力[当时(当然也包括现在)对.net不是很熟悉]。考虑到这个项目是应用在服务器端且服务器性能较好,而用户也不会反感装一个20多兆的Framework,所以俺选择了它。

    三、.net下socket编程的一些注意事项
            (1) 如何将一个结构体转换为byte[],或者如何将byte[]转换为相应的结构体
                 有3种方式可以作为选择:
                 a) 一是采用序列化的方式,在发送前将对象序列化成byte[], 通过socket转发之后再将byte[]还原
                 b)用BitConvert类来处理
                 c)使用Unsafe方式
                 三种方式的详细实现请参见我的这篇blog:   http://jll.cnblogs.com/archive/2005/07/23/198851.aspx

            (2) 网络字节顺序与主机字节顺的转换
                  在写socket程序时要注意,如果要发送整型(short, int, long等)类型的数据,需要将这些值转换成网络字节顺序后才后再发送,同时接收方也要将网络字节顺序的值转为主机字节顺序的。System.Net.IPAddress类提供了HostToNetworkOrderHostToNetworkOrder 来完成相应的功能。

           (3) 如何判断socket已经断开了
                 tcp的实现机制决定了这个处理这个问题的复杂性。 已连接的socket, 如果网络突然断开了或者是对方突然死机,tcp的默认实现机制是不能检测到这种情况的。然而,在.net下的Socket,即使你按照正常的程序来关闭Socket,它也不会有相应的事件或属性来告知您。
                我的这篇blog: http://jll.cnblogs.com/archive/2005/07/29/203090.html  较详细地叙述了这个问题。

    四、联通的sgip 1.2协议
            网上资料很多,请自行google或baidu,^_^

    五、程序源码及开发文档
           这篇blog的核心就在于这里(https://files.cnblogs.com/JLL/sgipSMG.rar)了, 包括整个源代码和开发文档。请阅读里面的 "开发文档.doc"  文件; 用vs 2005打开sgipSMG.sln后,在“解决方案资源管理器”下会看到4个项目,其中 "sgipSMG 项目" 为核心代码所在。
           需要的朋友请下载之。

    good luck and have a good day!
         

  • 相关阅读:
    浅谈流形学习
    变分例子
    变分
    基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN
    模拟退火
    粒子群算法
    JavaEE Tutorials (24)
    洛谷 P2026 求一次函数解析式
    洛谷 P1598 垂直柱状图
    洛谷 P1781 宇宙总统
  • 原文地址:https://www.cnblogs.com/JLL/p/387346.html
Copyright © 2011-2022 走看看