精华内容
下载资源
问答
  • 安全管理:看相关违规操作记录,查询攻击IP地址,自动封闭IP,管理SQL信息 安全设置:根据需要设置一些安全过滤信息 首页菜单管理:可以添加,删除菜单信息,打开窗口,是否显示,是否为头部导航或者底部导航栏 ...
  • 本文接着上文的内容,主要解答上文留下的疑问:既然不能使用`InetAddress#getLocalHost()`直接去获取到本机的IP地址,那么如何破呢? 本文将介绍的是一种通用的获取本机IP地址的解决方案,也就是所谓的“正确姿势”...

    程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。

    前言

    本文接着上文的内容,主要解答上文留下的疑问:既然不能使用InetAddress#getLocalHost()直接去获取到本机的IP地址,那么如何破呢?

    本文将介绍的是一种通用的获取本机IP地址的解决方案,也就是所谓的“正确姿势”。


    正文

    为了更好的解释为何InetAddress#getLocalHost()不靠谱,有必要先普及下Linux下的相关文件的解释,比较我们的Java应用绝大部分情况下都是跑在Linux环境下的(甚至国内基本都跑在centos上吧)。


    Linux下/sysconfig/network、hosts、host.conf、resolv.conf文件解释

    这几个文件都位于/etc/目录下,下面分别给出解释和示例:

    • /sysconfig/network此文件是针对本计算机的,是给计算机起的一个名字,是计算机的一个标识。可以使用uname -n 命令来查看本地计算机的计算机名称(比如本例我使用该命令得到的值是l-xxx.syc.prod.ali.qr,也就是配置里的HOSTNAME的值)
    # 支持网络通信
    NETWORKING=yes
    # 主机名,若你不设置默认是localhost.localdomain
    # 使用hostname命令查看到的就是这个值
    HOSTNAME=l-xxx.syc.prod.ali.qr
    # 不启用IPV6的支持
    NETWORKING_IPV6=no
    PEERNTP=no
    
    • hosts不同于network,此文间是在网络上使用的。和Windows系统下的hosts文件相类似,就是一个文本文件,里面存放一些IP和域名的对应关系(注意:都是先ip,后域名)
    127.0.0.1   localhost 
    # ::1表示的时ipv6的本地地址,也就是0000:0000:0000:0000:0000:0000:0000:0001
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    # 内网ip地址 -> 主机名  的映射关系
    10.102.1.153 l-xxx.syc.prod.ali.qr
    
    • host.conf:解析顺序/方式,属于一种规则配置。
    # 这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反,你调个顺序即可)
    order bind,hosts
    # 指定是否“/etc/hosts”文件中指定的主机可以有多个地址
    multi on
    
    • resolv.confDNS服务器的配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件由域名解析器来读取(下面会有Java代码示例)
      • 格式:每行以一个关键字开头,后接一个或多个由空格隔开的参数
      • 可选的关键字有:
        • nameserver:(最重要,此关键字必选,其它可选)定义DNS服务器的IP地址,可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
        • domain:定义本地域名/主机的域名
        • search:定义域名的搜索列表
          • search和domain不能共存,如果同时存在,以最后出现的为准。
        • sortlist:对返回的域名进行排序,如sortlist 130.155.160.0/255.255.240.0 130.155.0.0
        • options:用于配置resolver的内置变量,不是resolv.conf的常见配置。语法如下:options [option] ...
          • ndots:[n]:设置调用res_query()解析域名时域名至少包含的点的数量
          • timeout:[n]:设置等待dns服务器返回的超时时间,单位秒。默认值5
          • attempts:[n]:设置resolver向DNS服务器发起域名解析的请求次数。默认值2
    # 一般是内网DNS服务器地址,这样就可以解析你的内网域名了喽
    nameserver 202.102.192.68
    nameserver 202.102.192.69
    search qq.com baidu.com
    options  no-check-names
    options  attempts:1
    options  timeout:1
    

    了解了这些概念后,接下来就得认识InetAddress这个API了。本文将会演示它在windows上(本机)以及Linux下运行的案例,会有差异,请注意区分。


    直接使用getLocalHost()获取本机IP的错误示例

    标题已经很明显指出了:这是错误示例。我相信绝大部分小伙伴获取本机IP都后悔这么用:

    public static void main(String[] args) throws UnknownHostException {
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println(localHost.getHostAddress());
    }
    

    运行程序,在不同的操作系统上值可能还不一样:

    • 在windows上:192.168.199.175
      • 在windows上看似正常。但是但是但是,请你开一个vpn再运行试一下,定会让你大跌眼镜(比如我开启公司的vpn后,输出的值是2.0.0.137
      • 可以看到当出现多个网卡接口工作时,windows可能就不好使了,而多个网卡同时工作的情况是很正常的(比较虚拟网卡经常很多)
    • 在Linux上:127.0.0.1
      • what?

    为何在Linux下请你一定不要使用它来获取本机IP,因为它就是简单的读取/etc/hosts的内容,所以它默认返回的是127.0.0.1非常的不靠谱,因此本方法十分不建议在生产上使用

    /etc/hosts的第一行一般均是:127.0.0.1 localhost,所以返回值是127.0.0.1(倘若你把第一行改为127.1.1.1 localhost,那么它的返回值就是127.1.1.1了)


    获取本机IP地址的正确姿势

    关于获取本机地址的正确姿势,主要分为如下两种场景展开说明。

    简单情况(废弃)

    简单情况下,就可以通过InetAddress.getLocalHost()来获取到本机ip地址。注意这里的关键词:简单。因此它对环境是有要求的:

    1. windows环境
    2. 非多网卡协同工作环境(比如不能开启vpn)

    很明显,这种“简单”情况在实际生产中并不存在,因此仅限yy,不可使用。

    复杂情况(通用,推荐的方案)

    它是一种通用方案,推荐使用在实际的代码中。

    public static void main(String[] args) throws UnknownHostException {
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println(localHost.getHostAddress());
    
        System.out.println("----------------下面才是正确的获取方式----------------");
        localHost = getLocalHostExactAddress();
        System.out.println(localHost.getHostAddress());
        // System.out.println(localHost.getHostName());
    }
    
    
    public static InetAddress getLocalHostExactAddress() {
        try {
            InetAddress candidateAddress = null;
    
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface iface = networkInterfaces.nextElement();
                // 该网卡接口下的ip会有多个,也需要一个个的遍历,找到自己所需要的
                for (Enumeration<InetAddress> inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements(); ) {
                    InetAddress inetAddr = inetAddrs.nextElement();
                    // 排除loopback回环类型地址(不管是IPv4还是IPv6 只要是回环地址都会返回true)
                    if (!inetAddr.isLoopbackAddress()) {
                        if (inetAddr.isSiteLocalAddress()) {
                            // 如果是site-local地址,就是它了 就是我们要找的
                            // ~~~~~~~~~~~~~绝大部分情况下都会在此处返回你的ip地址值~~~~~~~~~~~~~
                            return inetAddr;
                        }
    
                        // 若不是site-local地址 那就记录下该地址当作候选
                        if (candidateAddress == null) {
                            candidateAddress = inetAddr;
                        }
    
                    }
                }
            }
    
            // 如果出去loopback回环地之外无其它地址了,那就回退到原始方案吧
            return candidateAddress == null ? InetAddress.getLocalHost() : candidateAddress;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    

    在windows运行输出(即使你开了vpn都木有关系的哦):

    2.0.2.81
    ----------------下面才是正确的获取方式----------------
    192.168.199.175
    

    在Linux下运行输出:

    127.0.0.1
    ----------------下面才是正确的获取方式----------------
    10.102.11.29
    

    可以看到通过这种方式获取本机IP,不管是windows or Linux,亦不管是开启了vpn与否,最终均能得到正确的结果。




    最后最为辅助材料,介绍下InetAddress的其它方法们。

    InetAddress的其它实例方法们介绍

    //获取主机名
    public String getHostName();
    //获取主机名(每次方法都解析DNS去获取主机名,而不从缓存中获取)
    public String getCanonicalHostName();
    //获取以字节数组形式的ip地址。
    public byte[] getAddress();
    //获取点分四段式ip。
    public String getHostAddress();
    
    //可以根据指定timeout时间内测试网络是否可达,是否可以建立连接。
    public boolean isReachable(int timeout);
    //可以指定从本机那个网卡、生存时间ttl 和指定时间来测试网络是否可达。
    public boolean isReachable(NetworkInterface netif, int ttl, int timeout);
    
    // 当IP地址是广播地址(MulticastAddress)时返回true,否则返回false。
    // 通过广播地址可以向网络中的所有计算机发送信息,而不是只向一台特定的计算机发送信息。
    // IPv4的广播地址的范围是224.0.0.0 ~ 239.255.255.255
    // IPv6的广播地址第一个字节是FF 其他的字节可以是任意值。
    public boolean isMulticastAddress();
    // 当IP地址是通配符地址时返回true,否则返回false。
    // IPv4的通配符地址是0.0.0.0
    // IPv6的通配符地址是0:0:0:0:0:0:0:0,也可以简写成::。
    public boolean isAnyLocalAddress();
    // 当IP地址是loopback地址时返回true,否则返回false。loopback地址就是代表本机的IP地址。
    // IPv4的loopback地址的范围是127.0.0.0 ~ 127.255.255.255,也就是说,只要第一个字节是127,就是lookback地址。
    // IPv6的loopback地址是0:0:0:0:0:0:0:1,也可以简写成::1
    public boolean isLoopbackAddress();
    // 当IP地址是本地连接地址(LinkLocalAddress)时返回true,否则返回false。
    // IPv4的本地连接地址的范围是169.254.0.0 ~ 169.254.255.255。
    // IPv6的本地连接地址的前12位是FE8,其他的位可以是任意取值,如FE88::和FE80::ABCD::都是本地连接地址。
    public boolean isLinkLocalAddress();
    // 当IP地址是地区本地地址(SiteLocalAddress)时返回true,否则返回false。(是不是内网ip)
    // IPv4的地址本地地址分为三段:10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255
    // (企业内部或个人内部的局域网内部的ip都应该在此三个网段内 因为内网用ipv4足够)
    // IPv6的地区本地地址的前12位是FEC,其他的位可以是任意取值,如FED0:: 和 FEF1:: 都是地区本地地址。
    public boolean isSiteLocalAddress();
    
    
    // 当IP地址是全球范围的广播地址时返回true,否则返回false。全球范围的广播地址可以向Internet中的所有的计算机发送信息。
    // IPv4的广播地址除了224.0.0.0和第一个字节是239的IP地址都是全球范围的广播地址
    // IPv6的全球范围的广播地址中第一个字节是FF,第二个字节的范围是0E ~ FE,其他的字节可以是任意值,如FFBE::、FF0E::都是全球范围的广播地址。
    public boolean isMCGlobal();
    // 当IP地址是本地接口广播地址时返回true,否则返回false。
    // 本地接口广播地址不能将广播信息发送到产生广播信息的网络接口,即使是同一台计算机的另一个网络接口也不行。
    // 所有的IPv4广播地址都不是本地接口广播地址。IPv6的本地接口广播地址的第一个字节是FF,第二个节字的范围是01 ~ F1,
    // 其他的字节可以是任意值,如FFB1::、FF01:A123::都是本地接口广播地址。
    public boolean isMCNodeLocal();
    // 当IP地址是子网广播地址时返回true,否则返回false。
    // IPv4的子网广播地址的范围是224.0.0.0 ~ 224.0.0.255。
    // IPv6的子网广播地址的第一个字节是FF,第二个字节的范围是02 ~ F2,其他的字节可以是任意值,如FFB2:: 和 FF02:ABCD:: 都是子网广播地址。
    public boolean isMCLinkLocal();
    // 当IP地址是站点范围的广播地址时返回true,否则返回false。 
    // 使用站点范围的广播地址,可以向站点范围内的计算机发送广播信息。
    // IPv4的站点范围广播地址的范围是239.255.0.0 ~ 239.255.255.255,如239.255.1.1、239.255.0.0都是站点范围的广播地址。
    // IPv6的站点范围广播地址的第一个字节是FF,第二个字节的范围是05 ~ F5,其他的字节可以是任意值,如FF05:: 和 FF45:: 都是站点范围的广播地址。
    public boolean isMCSiteLocal();
    // 当IP地址是组织范围的广播地址时返回ture,否则返回false。
    // 使用组织范围广播地址可以向公司或企业内部的所有的计算机发送广播信息。
    // IPv4的组织范围广播地址的第一个字节是239,第二个字节不小于192,第三个字节不大于195,如239.193.100.200、239.192.195.0都是组织范围广播地址。
    // IPv6的组织范围广播地址的第一个字节是FF,第二个字节的范围是08 ~ F8,其他的字节可以是任意值,如FF08:: 和 FF48::都是组织范围的广播地址。
    public boolean isMCOrgLocal();
    

    总结

    关于InetAddress的所有内容就介绍到这,相信经过此两篇内容的讲解后,你对Java处理域名解析,以及获取本地IP地址时将不会再胆怯,干吧。另外,其实上Java该有更高级的功能:

    • 自己指定DNS地址,形如这样:
    // 这么一来我们的hostName域名都将交给`114.114.114.114`去帮我们完成解析
    System.setProperty("sun.net.spi.nameservice.nameservers", "114.114.114.114"); 
    
    • 自己指定DNS服务的提供者:
    // 若你没指定此key,那就是default。默认就会使用系统自带的DNS
    // `dns,sun`的意思是:会使用`sun.net.spi.nameservice.nameservers`配置指定的DNS来解析
    System.setProperty("sun.net.spi.nameservice.provider.1", "dns,sun");
    

    这些内容几乎很少会涉及到,因此本文并没必要展开。


    关注A哥

    Author A哥(YourBatman)
    个人站点 www.yourbatman.cn
    E-mail yourbatman@qq.com
    微 信 fsx641385712
    活跃平台
    公众号 BAT的乌托邦(ID:BAT-utopia)
    知识星球 BAT的乌托邦
    每日文章推荐 每日文章推荐

    BAT的乌托邦

    往期精选

    展开全文
  • 多年前一个机会参与设计开发一个企业级的即时通讯软件项目,当时类似企业QQ,阿里旺旺的软件系统,如今整理资料时觉得可以将它拿出来与大家分享,不过是早期的一个版本,如今经过我的努力已经更新了多个版本,现在...

    多年前一个机会参与设计开发一个企业级的即时通讯软件项目,当时类似企业QQ,阿里旺旺的软件系统,如今整理资料时觉得可以将它拿出来与大家分享,不过是早期的一个版本,如今经过我的努力已经更新了多个版本,现在还是比较不错的,可以商用,想学习这方面的朋友可以免费下载源码包,但是不能用于商用,如今已经有C++\C#\Delphi等多个版本,想购买商用版可以联系我,ok!废话不多说先上内容。

    一.系统功能清单概览

     

    功能模块

    功能模块具体描述

     

     

     

     

     

     

     

     

    实时信息交互

    支持联系人状态(在线、离开、离线、忙碌、电话、会议…

    支持一对一会话(文字)

    支持邀请多人会话(文字)

    支持表情图标

    支持字体与颜色

    支持截图发送

    支持点对点文件发送

    支持点对点文件断点续传

    支持一对一语音交流

    支持一对一视频交流

    查找联系人

    显示在线企业内部人员与客户联系人

    支持消息广播

    支持留言消息提醒,对方不在线情况下可以留言,对方上线时得到留言提醒

     

     

    企业组织结构管理

    支持企业部门结构浏览,可查看部门结构以及找到具体的部门人员或客户联系人

    支持企业部门组织结构信息创建与修改

    支持部门下面人员信息(帐号)创建与修改

    支持企业客户联系人信息(帐号)创建与修改

    历史信息管理

    通讯记录,查看历史聊天记录和文件发送接收记录

     

    企业短信中心

    一对一手机短信发送(中国移动、中国联通手机)

    手机短信群发(中国移动、中国联通手机)

    Web客户端

    内嵌Web网页浏览

    语言版本

    支持简体中文操作界面,包括客户端和服务端

    支持英文操作界面,包括客户端和服务端

     

     

    二、具体功能:

     

    系统设置

    用户对客户端登录连接等信息进行设置,如图(2)、(3)所示

    注销

    表示用户退出重新登录系统

    查看详细资料

    表示对联系人的详细信息进行查看

    我的状态

    表示用户可以自定义在线状态,如忙碌、离开、就餐…

    开始对话

    表示进入即时信息交流

    发送文件或照片

    表示发送文件和图片给对方,文件格式没有限制可以是任何文件,另外传输文件大小也没有限制

    音频对话

    表示用户一对一使用麦克风进行语音交流

    网络摄像机

    表示用户一对一使用麦克风和摄像头进行语音视频交流

    音频视频调节向导

    表示用户对即插即用的音频视频设备进行设置

    打开消息历史记录

    表示用户查看自己历史聊天记录和文件收发记录

     

    三、截图

     

    用户上线

    1)      0x1001:Client连接Appsvr,发送上线请求,包格式如下:

    字段名

    长度(字节数)

    类型

    备注

    用户名UserName

    31

    char

     

    密码Password

    16

    char

     

    版本号

    4

    int

     

    好友列表最后刷新时间

    4

    Time_t

     

     

    如果版本不匹配,连接到文件服务器下载最新版本的安装程序,断开客户端连接;

    0x5001:Appsvr收到请求后作版本比较,如果版本更新,则通知Client

     

    字段名

    长度

    类型

    备注

    文件服务器IP

    16

    char

     

    文件服务器端口

    2

    byte

     

    版本号

    4

    int

     

     

    如果AppSvr中的待处理登录命令太多,则直接拒绝客户端登录请求

    0x5001     AppSvr->Client

    字段名

    长度(字节数)

    类型

    备注

     

    状态码:

    0x5001    版本不匹配

    0x5002    服务器忙

     

     

    2)      0x5002: Appsvr向DBGateway请求验证;

     

    字段名

    长度

    类型

    备注

    源消息ID

    4

    int

    AppSvr发给MCG的消息ID

    用户名UserName

    31

    char

     

    密码Password

    16

    char

     

    好友列表最后刷新时间

    4

    Time_t

     

     

    3)      数据库网关返回验证结果

    如果验证客户端失败,返回空包

    0x7001:DBG->Appsvr

    字段名称

    长度

    类型

    备注

    状态码:

                 0x7001  用户密码错

    0x7002    用户不存在

     

     

    如果验证客户端成功,返回用户个人信息和好友列表

    0x7001  DBG->AppSvr

    字段名称

    长度

    类型

    备注

    源消息ID

    4

    int

    AppSvr发给MCG的消息ID

    用户ID

    4

    int

     

    性别

    1

    Byte

    0:无,1:男,2:女

    年龄

    1

    Byte

     

    加好友方式

    1

    byte

    0:直接加,1:验证,2:禁止加

    图标ID

    2

    byte

     

    昵称

    51

    Char

     

    手机

    20

    Char

     

    Email地址

    51

    Char

     

    公司

    31

    Char

     

    部门

    21

    char

     

    国家

    31

    char

     

    省份

    31

    char

     

    城市

    31

    char

     

    地址

    51

    char

     

    是否需要更新本地好友列表

    1

    byte

    0:不需要更新;1:必须更新

    是否有加好友验证消息需反馈

    1

    byte

    0:没有;1:有

    加过本方的人的个数

    2

    WORD

     

    好友个数

    2

    WORD

     

    加过本方为好友的人的列表

    用户号UserID

    4

    Int

     

    好友列表

    好友UserID

    4

    Int

     

    好友用户名

     

     

     

    图标ID

    2

    Int

     

    昵称DispName

    51

    Char

     

     

    状态码:0x0000    验证成功

     

     

    4)     AppSvr向Client回复登录验证结果

     

    如果验证客户端失败,AppSvr向客户端回复失败状态,并断开客户端连接

    0x5001 AppSvr->Client

    字段名称

    长度

    类型

    备注

    状态码:      0x7001    用户不存在

    0x7002    用户密码错误

     

     

    如果验证成功,返回用户个人信息和好友列表以及所负载的IMSvr,然后断开客户端连接

    0x5001: Appsvr->Client:通知客户端验证成功,返回用户个人信息和IMSvr列表

    字段名

    长度

    类型

    备注

    用户ID

    4

    int

     

    性别

    1

    Byte

    0:无,1:男,2:女

    年龄

    1

    Byte

     

    加好友方式

    1

    byte

    0:直接加,1:验证,2:禁止加

    图标ID

    2

    byte

     

    昵称

    51

    Char

     

    手机

    20

    Char

     

    Email地址

    51

    Char

     

    公司

    31

    Char

     

    部门

    21

    char

     

    国家

    31

    char

     

    省份

    31

    char

     

    城市

    31

    char

     

    地址

    51

    char

     

    IMSvr个数

    1

    byte

     

    IMSvr列表

    IMSvr IP

    16

    Char

     

    IMSvr TCP端口

    2

    Short

     

    IMSvr UDP端口

    2

    Short

     

    状态码:0x0000    验证成功

     

     

    0x5003:Appsvr->Client    刷新好友信息

    字段名

    长度

    类型

    备注

    是否需要更新本地好友列表

    1

    byte

    0:不需要更新;1:必须更新

    好友个数

     

     

     

    好友列表

    好友UserID

    4

    Int

     

    用户名

    31

    char

     

    昵称DispName

    51

    Char

     

    图标ID

    2

    Int

     

    状态

     

     

     

    状态码:0x0000    成功

     

     

     

    5)      0x1002:Client_IMSVR_TCP_online:Client->IMSvr:客户端登录IM服务器

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    密码Password

    16

    Char

     

    内网IP

    16

    char

     

    内网UDP 端口

    2

    short

     

     

    6)      0xB001      IMSvr->AppSvr 请求验证客户端

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    密码Password

    16

    Char

     

     

     

    7)      0x5004 AppSvr->IMSvr 返回验证结果

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    状态码:  0x0000    验证成功

          0x5003    用户不存在

    0x5004    用户密码错误

     

    8)      0xB002 IMSvr->Client 返回验证结果

    字段名

    长度

    类型

    备注

    状态码:  0x0000    验证成功

          0x5003    用户不存在

    0x5004    用户密码错误

     

     

    IMSvr向客户端返回验证成功的结果后,在待处理队列中写入一个包,记录开始等候UDP连接的时间,作超时检测。Client收到验证成功的消息后,开始向IMSvr发UDP激活包;

    UDP激活包的格式如下:

    0x1000

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

     

    如果IMSvr超时未收到客户端的UDP激活包,则通知Client登录失败,断开连接;如果成功收到激活包,则通客户端登录成功。同时IMSvr通知AppSvr,Client登录是否成功。

     

     

    9)      0xB003 IMSvr->Client IM服务器通知客户端登录结果

    字段名

    长度

    类型

    备注

    状态码:  0x0000    登录成功

                    0xB001   超时未收到UDP激活包

                    0xB002   服务器超时

                    0xB003  服务器忙

                    0xB004   服务器拒绝登录请求

          0x5003    用户不存在

    0x5004    用户密码错误

     

     

    0xB004

    IMSvr->AppSvr:Client上线是否成功

     字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    外网IP

    16

    char

     

    外网udp端口

    2

    byte

     

    内网IP

    16

    char

     

    内网udp端口

    2

    byte

     

    状态码:  0x0000    登录成功

                    其它:   登录失败

     

    10)   AppSvr的处理

    如果AppSvr收到IMSvr发送的客户端登录成功的消息,则(1)更改用户结点的状态;(2)通知数据库网关更改数据库中记录的状态;(3)返回用户的在线好友列表给IMSvr;(4)通知加过该用户的所有在线好友所在的IMSvr,有人上线。

     

    0x5005 :App->DBGateway:向数据库写用户在线信息

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    外网IP

    16

    char

     

    外网udp端口

    2

    Short

     

    内网IP

    16

    Char

     

    内网udp端口

    2

    short

     

    登录状态

    1

    Byte

     

     

     

    0x5006:Appsvr->IMSvr: 刷在线好友信息(包括加我为好友的人的信息)

    字段名

    长度

    类型

    备注

    用户ID

    4

    int

     

    在线好友个数

    2

    short

     

    在线好友列表

    在线好友UserID

    4

    Int

     

    用户名

    31

    char

     

    昵称

    51

    char

     

    图标ID

    2

    short

     

    IMSvr的IP

    16

    char

     

    外网IP

    16

    char

     

    外网UDP端口

    2

    Byte

     

    内网IP

    16

    char

     

    内网UDP端口

    2

    byte

     

    在线状态

    1

    Byte

     

    好友类型

    1

    byte

    1:我的好友;2:加过我的人

     

    0xB013 IMerver ->IMClient  刷在线好友信息(包括加我为好友的人的信息)

    字段名

    长度

    类型

    备注

    在线好友个数

    2

    short

     

    在线好友列表

    在线好友UserID

    4

    Int

     

    用户名

    31

    char

     

    昵称

    51

    char

     

    图标ID

    2

    short

     

    IMSvr的IP

    16

    char

     

    外网IP

    16

    char

     

    外网UDP端口

    2

    Byte

     

    内网IP

    16

    char

     

    内网UDP端口

    2

    byte

     

    在线状态

    1

    Byte

     

    好友类型

    1

    byte

    1:我的好友;2:加过我的人

     

     

    0x5007:App->IMSvrx: 通知加过我为好友的人,有人上线

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    用户名

    31

    char

     

    昵称DispName

    51

    Char

     

    图标ID

    2

    Int

     

    IMSvr的IP

    16

    Char

     

    外网IP

    16

    Char

     

    外网UDP端口

    2

    Byte

     

    内网IP

    16

    char

     

    内网UDP端口

    2

    byte

     

    在线状态

    1

    Byte

     

    好友类型

    1

    byte

    1:我的好友;2:加过我的人

    好友个数

    2

    short

     

    好友ID列表

     

     

     

     

     

     

    11)    0xB005  IMSvrx->Clientx: IMSvrx通知每个在线好友,有人上线

     

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    Int

     

    用户名

    31

    char

     

    昵称DispName

    51

    Char

     

    图标ID

    2

    Int

     

    IMSvr的IP

    16

    char

     

    外网IP

    16

    char

     

    外网UDP端口

    2

    Byte

     

    内网IP

    16

    char

     

    内网UDP端口

    2

    byte

     

    在线状态

    1

    Byte

     

    好友类型

    1

    byte

    1:我的好友;2:加过我的人

     

     

    流程图:

     

     

     

     

    用户下线

    用户主动下线

     

    1) 0x1003:Client_IMSvr_Offline:Client->IMSvr:Client向IM服务器发送下线请求 

    字段名

    长度

    类型

    备注

     

    2) 0xB006  IMSvr->Appsvr:IMSvr向应用服务器发送用户下线通知

    字段名

    长度

    类型

    备注

    用户号UserID

    30

    char

     

     

    3) 0x5008:Appsvr->DBGateway:通知用户下线. 

    字段名

    长度

    类型

    备注

    用户号UserID

    4

    int

     

     

    0x5009:Appsvr->IMSvrx:应用服务器发送用户下线通知给该用户的所有在线好友所在的IMSvrx,

    字段名

    长度

    类型

    备注

    下线用户号UserID

    4

    Int

     

    好友用户号ID列表

    4

    int

     

     

    4) 0xB007  IMSvrx->Clientx   IMSvr通知客户端,有好友下线

    字段名

    长度

    类型

    备注

    下线用户号UserID

    4

    int

     

     

    用户主动下线流程图:

     

    用户超时下线

    客户端定时向IM服务器发送心跳包,如果IM服务器超时未收到客户端的心跳包,则认为用户下线

    处理过程同“用户主动下线”的2)——4)步

     

     

    加好友

    1)       0x1010:Client->IMSvr :客户端向IMSVR查询指定用户的信息  发送加好友请求

    字段名

    长度

    类型

    备注

    本方用户号UserID

    4

    int

     

    对方用户名UserName

    31

    Char

     

     

    2)      0xB008 IMSvr->Appsvr:IMSvr向应用服务器转发加好友的请求

    字段名

    长度

    类型

    备注

    本方用户号UserID

    4

    int

     

    对方用户名UserName

    31

    char

     

     

    3)       0x500A:Appsvr->DBGateway:应用服务器向数据库网关转发加好友的请求

    字段名

    长度

    类型

    备注

    SourceID

    4

    Int

    源ID

    本方用户号UserID

    4

    int

     

    对方用户名UserName

    31

    char

     

     

     

    4)       0x7002:DBGateway->Appsvr:数据库网关向应用服务器应答加好友的结果

     

    如果添加成功,返回被加用户的个人详细信息

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

    源ID

    本方用户号UserID

    4

    Int

     

    对方用户名UserName

    31

    char

     

    以下为被加方的个人详细信息

    用户ID

    4

    int

     

    昵称

    51

    char

     

    图标ID

    2

    byte

     

    性别

    1

    Byte

     

    省份

    31

    char

     

    年龄

    1

    byte

     

    对方状态

    1

    byte

     

    状态码:      0x0000    添加成功

     

    如果添加失败,返回错误码

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

    源ID

    本方用户号UserID

    4

    int

     

    对方用户名UserName

    31

    char

     

     

    状态码:

                   其它:   添加失败

     

    5)       0x500B: AppSvr->IMSvr:应用服务器向IM服务器转发加好友的结果

    字段名

    长度

    类型

    备注

    本方用户号UserID

    4

    Int

     

    对方用户名UserName

    31

    char

     

    以下为被加方的个人详细信息

    用户ID

    4

    int

     

    昵称

    51

    char

     

    图标ID

    2

    byte

     

    性别

    1

    Byte

     

    省份

    10

    char

     

    年龄

    1

    byte

     

    对方状态

    1

    byte

     

    状态码:      0x0000    添加成功

     

    如果添加失败,返回错误码

    字段名

    长度

    类型

    备注

    本方用户号UserID

    4

    int

     

    对方用户名UserName

    31

    char

     

    状态码: 

                   其它:   添加失败

     

     

    6)       0xB009 IMSvr->Client:IM服务器向客户端转发加好友的结果

    包格式同5

     

     

     

     

    直接加好友的流程图:

     

     

    删除好友

    1)       0x1011:Client->IMSvr 客户端发送请求删除好友的命令

    字段名

    长度

    类型

    备注

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

     

    2)       0xB00A  IMSvr->AppsvrIM服务器向应用服务器转发用户删除好友的命令

    字段名

    长度

    类型

    备注

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

     

    3)       0x500C :Appsvr->DBGateway应用服务器向数据库网关转发用户删除好友的命令

    字段名

    长度

    类型

    备注

    SourceID

    4

    Int

     

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

     

    4)       0x7003:DBGateway->AppSvr数据库网关回复用户删除好友的结果

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   删除失败

     

     

    5)       0x500D:AppSvr->IMSvr应用服务器向IM服务器转发用户删除好友的结果

    字段名

    长度

    类型

    备注

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   删除失败

     

    6)       0xB00B  IMSvr->ClientIM服务器向客户端转发删除好友的结果

    字段名

    长度

    类型

    备注

    本方UserID

    4

    int

     

    被删用户号

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   删除失败

     

     

    修改用户信息

    1)       0x1020Client->IMSVR客户端请求修改个人信息

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    密码Password

    16

    char

     

    昵称

    51

    Char

     

     

     

     

     

     

     

    2)       0xB00C: IMSvr->AppSvr IM服务器转发用户修改个人信息的命令

    字段名

    长度

    类型

    备注

    UserID

    4

    int

     

    昵称

    51

    char

     

     

     

     

     

     

     

    3)       0x500E:Appsvr->DBGateway 应用服务器转发用户修改个人信息的命令

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    UserID

    4

    Int

     

    昵称

     

     

     

     

     

     

     

     

     

    4)       0x7004: DBGateway->Appsvr 数据库网关回复用户修改个人信息的结果

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    UserID

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   修改失败

     

    5)       0x500F:Appsvr->IMSvr 应用服务器转发用户修改个人信息的结果

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   修改失败

     

    6)       0xB00D:IMSvr->Client  IM服务器转发用户修改个人信息的结果

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    状态码:  0x0000    成功

                   其它:   修改失败

     

    查询用户详细信息

    1)       0x1021:Client->IMSVR客户端请求查询用户详细信息

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    对方UserID

    4

    int

     

     

     

    2)       0xB00E: IMSvr->AppSvr IM服务器转发查询用户详细信息的命令

    字段名

    长度

    类型

    备注

    UserID

    4

    int

     

    对方UserID

     

     

     

     

     

    3)       0x5010: Appsvr->DBGateway 应用服务器转发查询用户详细信息的命令

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    UserID

    4

    Int

     

    对方UserID

    4

    int

     

     

     

    4)       0x7005: DBGateway->Appsvr 数据库网关回复查询用户详细信息的结果

    成功返回用户详细信息:

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    UserID

    4

    Int

     

    对方UserID

     

     

     

    用户名

    31

    Char

     

    昵称

    51

    char

     

    图标ID

     

     

     

     

     

     

     

    状态码:  0x0000    成功

     

    失败返回:

    字段名

    长度

    类型

    备注

    SourceID

    4

    int

     

    UserID

    4

    Int

     

    对方UserID

     

     

     

     

    状态码:  0x7002    用户不存在

                   其它:   查询失败

     

    5)       0x5011: Appsvr->IMSvr 应用服务器转发查询用户详细信息的结果

    成功返回:

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    对方UserID

     

     

     

    用户名

    31

    Char

     

    昵称

    51

    char

     

    图标ID

     

     

     

     

     

     

     

    状态码:      0x0000    成功

     

    失败返回:

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    对方UserID

     

     

     

     

    状态码: 

                   0x7002    用户不存在

                   其它:   查询失败

     

    6)       0xB00F IMSvr->Client IM服务器转发查询用户详细信息的结果

    成功返回:

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    对方UserID

     

     

     

    用户名

    31

    Char

     

    昵称

    51

    char

     

    图标ID

     

     

     

     

     

     

     

    状态码:  0x0000    成功

     

    失败返回:

    字段名

    长度

    类型

    备注

    UserID

    4

    Int

     

    对方UserID

     

     

     

     

    状态码: 

                   0x7002    用户不存在

                   其它:   查询失败

     

    转发命令

     

    在客户端、IM服务器、应用服务器之间直接转发从一个Client到另一个Client的即时消息

    1)       0x1FFF:Client->IMSvr 

    字段名

    长度

    类型

    备注

    源UserID

    4

    int

     

    目的UserID

    4

    Int

     

    命令包内容

     

    2)       0x1FFF:IMSvr->Appsvr   

    字段名

    长度

    类型

    备注

    源UserID

    4

    int

     

    目的UserID

    4

    Int

     

    命令包内容

     

     

    3)       0x1FFF:AppSvr->IMSvr

    字段名

    长度

    类型

    备注

    源UserID

    4

    int

     

    目的UserID

    4

    Int

     

    命令包内容

     

    4)       0x1FFF:IMSvr->Client IM

    字段名

    长度

    类型

    备注

    源UserID

    4

    int

     

    目的UserID

    4

    Int

     

    命令包内容

     

    IMServer上线

    0xB010  IMServer->AppServer IMServer启动时向Appserver验证

     

    字段名

    长度

    类型

    备注

    密码

    16

    Char

     

    TCP端口

    4

    Int

     

    UDP端口

    4

    Int

     

     

    0x5012   AppSvr->DBGateway        请求数据库网关验证IM服务器

    字段名

    长度

    类型

    备注

    源ID

    4

    int

     

    IM服务器IP

    16

    char

     

    密码

    16

    Char

     

     

    0x7006   DBGateway->AppSvr        数据库网关返回验证IM服务器的结果

    字段名

    长度

    类型

    备注

    源ID

    4

    int

     

    IMSvrID

    4

    int

     

    状态码:0x0000   验证成功

             0x7010  没有注册的IMServer

             0x7011      注册密码错误

     

     

    0x5100:AppServer->IMserver     Appserver返回验证结果

    字段名

    长度

    类型

    备注

    状态码:0x0000   验证成功

             0x7010  没有注册的IMServer

             0x7011      注册密码错误

    IMServer下线

    0xB011IMServer->AppServer 通知Appserver本地IMserver即将关闭

    字段名

    长度

    类型

    备注

     

    0x5013   AppSvr->DBGateway        向数据库网关发送IM服务器下线命令

    字段名

    长度

    类型

    备注

    IMSvrD

    4

    int

     

     

    IMServer心跳包

    0xB012IMServer->AppServer

    字段名

    长度

    类型

    备注

     



     这里将基础的IMDefine代码贴出来。

    #ifndef IMSERVER_DEF_H
    #define IMSERVER_DEF_H
    #define IMSERVER_CMD_BASE 0xB000
    #define IMSERVER_ERROR_BASE 0xB000
    #define IM_CMD_BASE 0x1000
    #define IM_ERROR_BASE 0x1000
    #define APPSERVER_CMD_BASE 0x5000
    #define APPSERVER_ERROR_BASE 0x5000
    #define DBSERVER_CMD_BASE 0x7000
    #define DBSERVER_ERROR_BASE 0x7000
    #define MAX_PASSWORD 15
    #define MAX_IPADDRESS 15
    #define MAX_USERNAME 30
    #define MAX_GROUPNAME 30
    #define MAX_NICKNAME 50
    #define MAX_ADDRESS 50
    #define MAX_PHOTONUBMER 19
    #define MAX_EMAIL 50
    #define MAX_COMPANY 30
    #define MAX_DEPT 20
    #define MAX_COUNTRY 30
    #define MAX_PROVINCE 30
    #define MAX_CITY 30
    #define RESULT_NOERROR 0
    #define GROUPID_NONE (DWORD)-1




    #pragma pack(1)
    #ifndef ___DEFINE_H___
    typedef struct
    {
    //#ifndef __IO_COMPLETE_PORT__
    //WORD wLen;
    //#endif
    WORD wCommandID; //
    命令ID
    WORD wResult;//
    结果
    }
    PACKETHEADER, *PPACKETHEADER;
    #endif




    //
    个人基础信息
    typedef struct
    {
    UINT nUserID;//
    用户ID
    CHAR strUserName[MAX_USERNAME + 1];//
    用户名
    BYTE bSex;//  
    性别 0:无,1:男,2:女
    BYTE bAge;//  
    年龄
    BYTE bAddType;//
    加好友方式1 byte 0:直接加,1:验证,2:禁止加
    BYTE bPicture;//
    图标ID
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    CHAR strMobile[MAX_PHOTONUBMER + 1]; //
    手机
    CHAR strEmail[MAX_EMAIL + 1];// Email
    地址
    CHAR strCompany[MAX_COMPANY + 1];//
    公司
    CHAR strDept[MAX_DEPT + 1];//
    部门
    CHAR strCountry[MAX_COUNTRY];//
    国家
    CHAR strProvince[MAX_PROVINCE + 1];//
    省份
    CHAR strCity[MAX_CITY + 1];//
    城市
    CHAR strAddress[MAX_ADDRESS + 1];//
    地址
    } IMPERSON_BASE_INFO;


    //
    好友基础信息
    typedef struct
    {
    UINT nUserID;
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    BYTE bPicture;//
    图标ID
    UINT nGroupID;//
    组ID
    } IMBUDDY_BASE_INFO;




    //
    用户组信息
    typedef struct
    {
    UINT nGroupID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    } IMGROUP_BASE_INFO;


    //
    在线好友基础信息
    typedef struct
    {
    UINT nUserID;
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    BYTE bPicture;//
    图标ID
    CHAR strIMServerIP[MAX_IPADDRESS + 1];
    CHAR strNatIP[MAX_IPADDRESS + 1];
    WORD wNatPort;
    CHAR strLocalIP[MAX_IPADDRESS + 1];
    WORD wLocalPort;
    BYTE bOnlineStatus;
    BYTE bBuddyType;
    } IMBUDDY_ONLINE_INFO;


    //IMSERVER
    信息
    typedef struct
    {
    CHAR strIP[MAX_IPADDRESS + 1];
    SHORT nTcpPort;
    SHORT nUdpPort;
    } IMSERVER_BASE_INFO;




    //
    加好友基础信息
    typedef struct
    {
    UINT nUserID;
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    BYTE bPicture;//
    图标ID
    BYTE bSex;//  
    性别 0:无,1:男,2:女
    CHAR strProvince[MAX_PROVINCE + 1];//
    省份
    BYTE bAge;//  
    年龄
    BYTE bState;
    } IMBUDDY_ADD_INFO;


    //Common
    #define IM_SWITCH_COMMAND 0x1FFFF
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nDestID;
    CHAR pData[1];
    } STRUCT_IM_SWITCH;


    ///From IMClient/
    //
    登录Appserver
    #define IMCLIENT_LOGIN IM_CMD_BASE + 0x0001
    typedef struct
    {
    PACKETHEADER Head;
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strPassword[MAX_PASSWORD + 1];
    DWORD dwVersion;
    time_t tLastUpdate;
    } STRUCT_IMCLIENT_LOGIN;


    //
    用户登录状态
    enum EClientLoginStatus{
    eClientLoginStatusOffline = 1,//
    离线
    eClientLoginStatusLogining,//
    正在登录
    eClientLoginStatusOnline//
    在线
    };


    //
    用户在线状态
    enum EClientOnlineStatus{
    eClientOnlineStatusOffline = 1,
    eClientOnlineStatusOnline,//
    在线
    eClientOnlineStatusBusy,//

    eClientOnlineStatusHide,//
    隐身
    eClientOnlineStatusLeave,//
    离开
    eClientOnlineStatustelephone,//
    电话中
    eClientOnlineStatusComeBackSoon,//
    马上回来
    eClientOnlineStatusDinner,//
    外出就餐
    eClientOnlineStatusShowOffline//
    显示为脱机
    };




    //
    登录IMserver
    #define IMCLIENT_ONLINE IM_CMD_BASE + 0x0002
    typedef struct
    {
    PACKETHEADER Head;
    DWORD dwSessionID;
    UINT nUserID;
    CHAR strPassword[MAX_PASSWORD + 1];
    CHAR strLocalIP[MAX_IPADDRESS + 1];
    SHORT nLocalPort;
    } STRUCT_IMCLIENT_ONLINE;


    //
    下线
    #define IMCLIENT_OFFLINE IM_CMD_BASE + 0x0003
    typedef PACKETHEADER STRUCT_IMCLIENT_OFFLINE;


    //
    加好友
    #define IMCLIENT_ADDBUDDY IM_CMD_BASE + 0x0010
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strAddUserName[MAX_USERNAME + 1];
    } STRUCT_IMCLEINT_ADDBUDDY;


    //
    删除好友
    #define IMCLIENT_DELBUDDY IM_CMD_BASE + 0x0011
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nDelUserID;
    } STRUCT_IMCLEINT_DELBUDDY;


    //
    加组 ->imserver
    #define IMCLIENT_ADDGROUP IM_CMD_BASE + 0x0012
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    } STRUCT_IMCLEINT_ADDGROUP;


    //
    删组 ->imserver
    #define IMCLIENT_DELGROUP IM_CMD_BASE + 0x0013
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_IMCLEINT_DELGROUP;


    //
    修改用户的组属性 ->IMServer


    #define IMCLIENT_EDITUSERGROUP IM_CMD_BASE +0x0014
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nBuddyID;
    UINT nGroupID;
    } STRUCT_IMCLEINT_EDITUSERGROUP;
    //
    修改组名称
    #define IMCLIENT_RENAMEGROUP  IM_CMD_BASE +0x0015
    typedef struct  {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    }STRUCT_IMCLIENT_RENAMEGROUP;




    //
    修改信息
    #define IMCLIENT_EDITINFO IM_CMD_BASE + 0x0020
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strOldPassword[MAX_PASSWORD + 1];
    CHAR strNewPassword[MAX_PASSWORD + 1];
    CHAR strNickName[MAX_NICKNAME + 1];
    } STRUCT_IMCLEINT_EDITINFO;


    //
    查询好友信息
    #define IMCLIENT_QUERYINFO IM_CMD_BASE + 0x0021
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nQueryUserID;
    } STRUCT_IMCLEINT_QUERYINFO;


    //TCP
    激活包
    #define IMCLIENT_TCPACTIVE IM_CMD_BASE + 0x0030
    typedef struct
    {
    PACKETHEADER Header;
    } STRUCT_IMCLEINT_TCPACTIVE;


    //UDP
    激活包
    #define IMCLIENT_UDPACTIVE IM_CMD_BASE + 0x0031
    typedef struct
    {
    PACKETHEADER Header;
    DWORD dwSessionID;
    UINT nUserID;
    } STRUCT_IMCLEINT_UDPACTIVE;


    //
    更改用户状态
    #define IMCLIENT_CHANGE_STATUS IM_CMD_BASE +0x00A0
    typedef struct 
    {
    PACKETHEADER Header;
    UINT nUserID;
    BYTE eStatus;
    }STRUCT_IMCLIENT_CHANGE_STATUS;


    From IMServer//
    //
    到AppServer认证用户
    #define IMSERVER_AUTHUSER IMSERVER_CMD_BASE +0x0001
    typedef struct
    {
    PACKETHEADER Head;
    DWORD dwSessionID;
    UINT nUserID;
    CHAR strPassword[MAX_PASSWORD + 1];
    } STRUCT_IMSERVER_AUTHUSER;


    //
    认证结果
    #define IMSERVER_AUTHRESULT IMSERVER_CMD_BASE +0x0002
    typedef struct
    {
    PACKETHEADER Head;
    } STRUCT_IMSERVER_AUTHRESULT;


    //
    上线结果,通知ImClient
    #define IMSERVER_ONLINERESP IMSERVER_CMD_BASE +0x0003


    typedef struct
    {
    PACKETHEADER Head;
    CHAR strNatIP[MAX_IPADDRESS + 1];
    SHORT nNatPort;//
    网络字节
    }STRUCT_IMSERVER_ONLINERESP;


    /*
    0x0000
    登录成功
    0xB001
    超时未收到UDP激活包
    0xB002
    服务器超时
    0xB003  
    服务器忙
    0xB004
    服务器拒绝登录请求
    0x5003
    用户不存在
    0x5004
    用户密码错误
    */
    enum
    {
    RESULT_ONLINE_OK= RESULT_NOERROR,
    RESULT_ONLINE_UDPTIMEOUT= IMSERVER_ERROR_BASE+0x0001, //
    超时未收到UDP激活包
    RESULT_ONLINE_AUTHTIMEOUT,//
    认证超时
    RESULT_ONLINE_BUSY,//
    服务器忙
    RESULT_ONLINE_REFUSE,//
    服务器拒绝登录请求
    //RESULT_USERAUTH_PASSWORD
    //RESULT_USERAUTH_NOEXIT
    };


    //
    上线结果,通知AppServer
    #define IMSERVER_USERONLINE IMSERVER_CMD_BASE +0x0004
    typedef struct
    {
    PACKETHEADER Header;
    DWORD dwSessionID;
    UINT nUserID;
    CHAR m_strLocalIP[MAX_IPADDRESS + 1];
    SHORT m_nLocalPort;
    CHAR m_strNatIP[MAX_IPADDRESS + 1];
    SHORT m_nNatPort;
    } STRUCT_IMSERVER_USERONLINE;


    //
    好友上线通知,通知IM Client
    #define IMSERVER_NOTIFYONLINE IMSERVER_CMD_BASE+ 0x0005
    typedef struct
    {
    PACKETHEADER Header;
    IMBUDDY_ONLINE_INFO OnlineBuddy;
    } STRUCT_IMSERVER_NOTIFYONLINE;


    //
    下线结果,通知AppServer
    #define IMSERVER_USEROFFLINE IMSERVER_CMD_BASE +0x0006
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    } STRUCT_IMSERVER_USEROFFLINE;


    //
    好友下线通知,通知IM Client
    #define IMSERVER_NOTIFYOFFLINE IMSERVER_CMD_BASE+ 0x0007
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    } STRUCT_IMSERVER_NOTIFYOFFLINE;


    //
    转发加好友 ->appserver
    #define IMSERVER_ADDBUDDY IMSERVER_CMD_BASE +0x0008
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    CHAR strAddUserName[MAX_USERNAME + 1];
    } STRUCT_IMSERVER_ADDBUDDY;


    //
    转发加好友结果   ->imclient
    //
    此包为不定长包,注意判断
    #define IMSERVER_ADDBUDDYRESP IMSERVER_CMD_BASE+ 0x0009
    typedef struct
    {
    PACKETHEADER Header;
    // UINT nUserID;
    CHAR strUserName[MAX_USERNAME + 1];
    IMBUDDY_ADD_INFOBuddyInfo;
    } STRUCT_IMSERVER_ADDBUDDYRESP;


    //IMserver->Appserver,
    删除好友
    #define IMSERVER_DELBUDDY IMSERVER_CMD_BASE +0x000A
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    UINT nDelUserID;
    } STRUCT_IMSERVER_DELBUDDY;


    //Imserver->imclient,
    删除好友结果
    #define IMSERVER_DELBUDDYRESP IMSERVER_CMD_BASE+ 0x000B
    typedef struct
    {
    PACKETHEADER Header;
    UINT nDelUserID;
    } STRUCT_IMSERVER_DELBUDDYRESP;


    //
    修改用户信息
    #define IMSERVER_EDITINFO IMSERVER_CMD_BASE +0x000C
    typedef struct
    {
    PACKETHEADER Header;
    CHAR strPassword[MAX_PASSWORD + 1];
    IMPERSON_BASE_INFOUserInfo;
    } STRUCT_IMSERVER_EDITINFO;


    ///
    修改用户信息结果
    #define IMSERVER_EDITINFORESP IMSERVER_CMD_BASE+ 0x000D
    typedef struct
    {
    PACKETHEADER Header;
    CHAR strPassword[MAX_PASSWORD + 1];
    IMPERSON_BASE_INFOUserInfo;
    } STRUCT_IMSERVER_EDITINFORESP;


    //
    查询好友信息imsvr->appsvr
    #define IMSERVER_QUERYINFO IMSERVER_CMD_BASE +0x000E
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    UINT nQueryUserID;
    } STRUCT_IMSERVER_QUERYINFO;


    //
    查询好友信息结果imsvr->client
    #define IMSERVER_QUERYINFORESP IMSERVER_CMD_BASE+ 0x000F


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nQueryUserID;
    //
    如果操作成功
    IMPERSON_BASE_INFO UserInfo;//
    好友的个人详细信息
    /*
    UINT nQueryUserID;//
    如果操作成功
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    BYTE bPicture;//
    图标ID
    */
    } STRUCT_IMSERVER_QUERYINFORESP;


    //
    注册到Appserver
    #define IMSERVER_REGISTRY IMSERVER_CMD_BASE +0x0010
    typedef struct
    {
    PACKETHEADER Header;
    CHAR strPassword[MAX_PASSWORD + 1];
    SHORT nTcpPort;
    SHORT nUdpPort;
    } STRUCT_IMSERVER_REGISTRY;


    //
    从Appserver取消注册
    #define IMSERVER_UNREGISTRY IMSERVER_CMD_BASE +0x0011


    //
    心跳包
    #define IMSERVER_ACTIVEPACKET IMSERVER_CMD_BASE+ 0x0012


    //IMSERVER->IMSClinet,
    在线好友列表
    #define IMSERVER_ONLINEBUDDY IMSERVER_CMD_BASE +0x0013


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    WORD wBuddyCount;//
    在线好友个数


    //
    此处有wBuddyCount个IMBUDDY_ONLINE_INFO结构
    IMBUDDY_ONLINE_INFO OnlineBuddy[1];
    } STRUCT_IMSERVER_ONLINEBUDDY;


    //IMSERVER->APPSEVER
    #define IMSERVER_ADDGROUP IMSERVER_CMD_BASE +0x0014
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    } STRUCT_IMSERVER_ADDGROUP;


    //IMSERVER->IMCLIENT
    #define IMSERVER_ADDGROUPRESP IMSERVER_CMD_BASE+ 0x0015
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    UINT nGroupID;//
    增加失败时无效
    } STRUCT_IMSERVER_ADDGROUPRESP;


    //IMSERVER->APPSEVER
    #define IMSERVER_DELGROUP IMSERVER_CMD_BASE +0x0016
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_IMSERVER_DELGROUP;


    //IMSERVER->IMCLIENT
    #define IMSERVER_DELGROUPRESP IMSERVER_CMD_BASE+ 0x0017
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_IMSERVER_DELGROUPRESP;




    //
    修改用户的组属性 ->Appserver
    #define IMSERVER_EDITUSERGROUP  IMSERVER_CMD_BASE + 0x0018
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nBuddyID;
    UINT nGroupID;
    } STRUCT_IMSERVER_EDITUSERGROUP;


    //
    修改用户的组属性 ->IMClient
    #define IMSERVER_EDITUSERGROUPRESPIMSERVER_CMD_BASE + 0x0019
    typedef struct
    {
    PACKETHEADER Head;
    UINT nBuddyID;
    UINT nGroupID;
    } STRUCT_IMSERVER_EDITUSERGROUPRESP;


    //
    组重命名 ->AppServer
    #define IMSERVER_RENAMEGROUP IMSERVER_CMD_BASE +0x001A
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    } STRUCT_IMSERVER_RENAMEGROUP;


    //
    组重命名答复 ->IMClient
    #define IMSERVER_RENAMEGROUPRESPIMSERVER_CMD_BASE + 0x001B
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    } STRUCT_IMSERVER_RENAMEGROUPRESP;


    #define IMSERVER_KICKOUTUSER IMSERVER_CMD_BASE +0x001C




    //
    更改用户状态
    #define IMSERVER_CHANGE_STATUS IMSERVER_CMD_BASE+ 0x001D
    typedef struct 
    {
    PACKETHEADER Header;
    UINT nUserID;
    BYTE eStatus;
    }STRUCT_IMSERVER_CHANGE_STATUS;


    //
    更改用户状态应答
    #define IMSERVER_BUDDY_STATUS IMSERVER_CMD_BASE+ 0x001E
    typedef struct 
    {
    PACKETHEADER Header;
    UINT nBuddyID;
    BYTE eStatus;
    }STRUCT_IMSERVER_BUDDY_STATUS;


    From APPServer//
    //
    提示客户端更新版本
    //#define APPSERVER_NEWVERSIONAPPSERVER_CMD_BASE + 0x0001
    //
    拒绝登录
    //#define APPSERVER_REFUSE APPSERVER_CMD_BASE +0x0002
    typedef enum
    {
    RESULT_REFUSE_VERSION= APPSERVER_ERROR_BASE +0x0001,
    RESULT_REFUSE_MAXCONN,
    };


    //Appserver
    返回给IMClient的验证结果
    #define APPSERVER_AUTHRESULT APPSERVER_CMD_BASE+ 0x0001


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;


    //
    注意,nResult != RESULT_AUTHRESULT_OK时  包到此结束
    DWORD dwSessionID;
    IMPERSON_BASE_INFOPersonInfo;
    BYTE nIMServer;//
    分配的IMServer


    //nIMServer > 0
    ,此处将填充nIMServer个IMSERVER_BASE_INFO;
    IMSERVER_BASE_INFOIMServer[1];
    } STRUCT_APPSERVER_AUTHRESULT;
    typedef struct
    {
    PACKETHEADER Head;
    CHAR strFilesrvIP[MAX_IPADDRESS + 1];
    SHORT nFilesrvPort;
    DWORD dwNewVersion;
    } STRUCT_APPSERVER_NEWVERSION;


    //Appserver
    到DBServer认证用户
    #define APPSERVER_AUTHUSER APPSERVER_CMD_BASE +0x0002
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strPassword[MAX_PASSWORD + 1];
    time_t tLastUpdate;
    } STRUCT_APPSERVER_AUTHUSER;


    //Appserver
    返回IMClient的好友列表
    #define APPSERVER_BUDDYINFO APPSERVER_CMD_BASE +0x0003


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    BYTE bMustUpdate;//
    是否需要更新本地好友列表  0:不需要更新;1:必须更新
    WORD wGroupCount;//
    分组个数
    WORD wBuddyCount;//
    好友个数
    // IMGROUP_BASE_INFOGroupInfo[1];


    //
    如果wBuddyCount > 0并且bMustUpdate =1 ,此处将填充wBuddyCount个IMBUDDY_BASE_INFO结构
    // IMBUDDY_BASE_INFOBuddyInfo[1];
    } STRUCT_APPSERVER_BUDDYINFO;


    //Appserver
    返回给IMServer的用户认证结果
    #define APPSERVER_AUTHUSERRESPAPPSERVER_CMD_BASE + 0x0004
    typedef struct
    {
    PACKETHEADER Header;
    DWORD dwSessionID;
    UINT nUserID;
    } STRUCT_APPSERVER_AUTHUSERRESP;
    enum
    {
    RESULT_USERAUTH_OK= RESULT_NOERROR,
    RESULT_USERAUTH_PASSWORD= APPSERVER_ERROR_BASE+0x0003,
    RESULT_USERAUTH_NOEXIT,
    };


    //APPServer->DBServer
    ,用户上线
    #define APPSERVER_USERONLINE APPSERVER_CMD_BASE+ 0x0005
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    CHAR m_strLocalIP[MAX_IPADDRESS + 1];
    SHORT m_nLocalPort;
    CHAR m_strNatIP[MAX_IPADDRESS + 1];
    SHORT m_nNatPort;
    } STRUCT_APPSERVER_USERONLINE;


    //Appserver->IMServer,
    在线好友列表
    #define APPSERVER_ONLINEBUDDY APPSERVER_CMD_BASE+ 0x0006


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    WORD wBuddyCount;//
    在线好友个数


    //
    此处有wBuddyCount个IMBUDDY_ONLINE_INFO结构
    IMBUDDY_ONLINE_INFO OnlineBuddy[1];
    } STRUCT_APPSERVER_ONLINEBUDDY;


    //APPServer->IMserver
    ,通知好友上线
    #define APPSERVER_NOTIFYONLINE APPSERVER_CMD_BASE+ 0x0007


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    IMBUDDY_ONLINE_INFO OnLineBuddy;
    SHORT nUserIDCount;//
    用户ID个数
    UINT nUserID[1];
    } STRUCT_APPSERVER_NOTIFYONLINE;


    //APPServer->DbServer
    ,通知好友下线
    #define APPSERVER_USEROFFLINE APPSERVER_CMD_BASE+ 0x0008


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    } STRUCT_APPSERVER_USEROFFLINE;


    //APPServer->IMserver
    ,通知好友下线
    #define APPSERVER_NOTIFYOFFLINEAPPSERVER_CMD_BASE + 0x0009
    typedef struct
    {
    PACKETHEADER Header;
    UINT nOfflineUserID; //
    下线用户ID
    SHORT nUserIDCount;//
    用户ID个数
    UINT nUserID[1];
    } STRUCT_APPSERVER_NOTIFYOFFLINE;


    //Appserver
    转发加好友
    #define APPSERVER_ADDBUDDY APPSERVER_CMD_BASE +0x000A
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    CHAR strAddUserName[MAX_USERNAME + 1];
    } STRUCT_APPSERVER_ADDBUDDY;


    //Appserver ->IMServer
    #define APPSERVER_ADDBUDDYRESPAPPSERVER_CMD_BASE + 0x000B


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    CHAR strAddUserName[MAX_USERNAME + 1];


    //
    如果操作成功,此出接
    IMBUDDY_ADD_INFOAddBuddyInfo;
    } STRUCT_APPSERVER_ADDBUDDYRESP;


    //Appserver->DbServer,
    删除好友
    #define APPSERVER_DELBUDDY APPSERVER_CMD_BASE +0x000C
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    UINT nDelUserID;
    } STRUCT_APPSERVER_DELBUDDY;


    //Appserver->IMServer,
    删除好友
    #define APPSERVER_DELBUDDYRESPAPPSERVER_CMD_BASE + 0x000D
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    UINT nDelUserID;
    } STRUCT_APPSERVER_DELBUDDYRESP;


    //
    修改用户信息
    #define APPSERVER_EDITINFO APPSERVER_CMD_BASE +0x000E
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    CHAR strPassword[MAX_PASSWORD + 1];
    IMPERSON_BASE_INFOUserInfo;
    } STRUCT_APPSERVER_EDITINFO;


    //
    修改用户信息应答
    #define APPSERVER_EDITINFORESPAPPSERVER_CMD_BASE + 0x000F
    typedef struct
    {
    PACKETHEADER Header;
    CHAR strPassword[MAX_PASSWORD + 1];
    IMPERSON_BASE_INFOUserInfo;
    } STRUCT_APPSERVER_EDITINFORESP;


    //
    查询好友信息 appsvr->dbg
    #define APPSERVER_QUERYINFO APPSERVER_CMD_BASE +0x0010
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nQueryUserID;
    } STRUCT_APPSERVER_QUERYINFO;


    //
    查询好友信息结果 appsvr->imsvr
    #define APPSERVER_QUERYINFORESPAPPSERVER_CMD_BASE + 0x0011
    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nUserID;
    UINT nQueryUserID;
    //
    如果操作成功
    IMPERSON_BASE_INFO UserInfo;//
    好友的个人详细信息
    } STRUCT_APPSERVER_QUERYINFORESP;


    //Imserver
    注册应答
    #define APPSERVER_REGISTRYRESPAPPSERVER_CMD_BASE + 0x0100


    //
    增加组 APPSERVER->DBServer
    #define APPSERVER_ADDGROUP APPSERVER_CMD_BASE +0x0200
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    } STRUCT_APPSERVER_ADDGROUP;


    //
    增加组应答 APPSERVER->IMSERVER
    #define APPSERVER_ADDGROUPRESPAPPSERVER_CMD_BASE + 0x0201
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    UINT nGroupID;//
    增加失败时无效
    } STRUCT_APPSERVER_ADDGROUPRESP;


    //
    删除组 APPSERVER->DBServer
    #define APPSERVER_DELGROUP APPSERVER_CMD_BASE +0x0202
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_APPSERVER_DELGROUP;


    //
    删除组应答 APPSERVER->IMSERVER
    #define APPSERVER_DELGROUPRESPAPPSERVER_CMD_BASE + 0x0203
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_APPSERVER_DELGROUPRESP;


    //
    修改好友所属的组 appsvr->dbserver
    #define APPSERVER_EDITUSERGROUP  APPSERVER_CMD_BASE + 0x0204
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nBuddyID;
    UINT nGroupID;
    } STRUCT_APPSERVER_EDITUSERGROUP;


    //
    修改好友所属的组应答 appsvr->imsvr
    #define APPSERVER_EDITUSERGROUPRESP  APPSERVER_CMD_BASE + 0x0205
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nBuddyID;
    UINT nGroupID;
    } STRUCT_APPSERVER_EDITUSERGROUPRESP;


    //
    重命名组 appsvr->dbserver
    #define APPSERVER_RENAMEGROUP  APPSERVER_CMD_BASE + 0x0206
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    } STRUCT_APPSERVER_RENAMEGROUP;


    //
    重命名组应答 appsvr->imsvr
    #define APPSERVER_RENAMEGROUPRESP  APPSERVER_CMD_BASE + 0x0207
    typedef struct
    {
    PACKETHEADER Head;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    } STRUCT_APPSERVER_RENAMEGROUPRESP;


    #define APPSERVER_KICKOUTUSERAPPSERVER_CMD_BASE+0x0208


    //
    更改用户状态
    #define APPSERVER_CHANGE_STATUSAPPSERVER_CMD_BASE + 0x0209
    typedef struct 
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    BYTE eStatus;
    }STRUCT_APPSERVER_CHANGE_STATUS;


    //
    好友状态改变
    #define APPSERVER_BUDDY_STATUSAPPSERVER_CMD_BASE + 0x020A
    typedef struct 
    {
    PACKETHEADER Header;
    UINT nUserID;
    BYTE eStatus;
    UINT nBuddyCount;   //
    好友个数 
    UINT nBuddys[1];    //
    好友列表
    }STRUCT_APPSERVER_BUDDY_STATUS;






    enum{

    RESULT_KICKOUT_OTHERPLACE=APPSERVER_ERROR_BASE+0x0010 ,   //
    在其他地方上线
    RESULT_KICKOUT_SERVICE,//
    服务器维护
    };


    typedef struct  {
    PACKETHEADER Header;
    UINT nUserID;
    }STRUCT_APPSERVER_KICKOUTUSER;


    #define APPSERVER_USERONLINERESPAPPSERVER_CMD_BASE+0x0103
    typedef struct  {
    PACKETHEADER Header;
    DWORD dwSessionID;
    UINT nUserID;
    }STRUCT_APPSERVER_USERONLINERESP;


    //
    转发IM服务器心跳包 appsvr->dbserver
    typedef struct  {
    PACKETHEADER Header;
    DWORD nSourceID;
    UINT nIMSvrID;
    }STRUCT_APPSERVER_IMSVRHEARTBEAT;


    //
    应用服务器下线 appsvr->dbserver
    #define APPSERVER_OFFLINEAPPSERVER_CMD_BASE+0x0101
    typedef struct  {
    PACKETHEADER Header;
    DWORD nSourceID;
    int nSvrID;
    }STRUCT_APPSERVER_OFFLINE;


    //
    应用服务器心跳包 appsvr->dbserver
    #define APPSERVER_HEARTBEATAPPSERVER_CMD_BASE+0x0102
    typedef struct  {
    PACKETHEADER Header;
    DWORD nSourceID;
    int nSvrID;
    }STRUCT_APPSERVER_HEARTBEAT;


    From DataBaseServer//
    //DBSSERVER
    认证结果
    #define DBSERVER_AUTHRESULT DBSERVER_CMD_BASE +0x0001


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;


    //
    注意,nResult != RESULT_AUTHRESULT_OK时  包到此结束
    IMPERSON_BASE_INFOPersonInfo;
    BYTE bMustUpdate;//
    是否需要更新本地好友列表  0:不需要更新;1:必须更新
    BYTE bMustFeedback;//
    是否有加好友验证消息需反馈0:没有;1:有
    WORD wAddMeBuddy;//
    加过本方的人的个数
    WORD wBuddyCount;//
    好友个数 2WORD


    //
    如果wAddMeBuddy > 0并且bMustFeeBase =1 ,此处将填充wAddMeBuddy个UserID;
    //
    如果wBuddyCount > 0并且bMustUpdate =1 ,此处将填充wBuddyCount个IMBUDDY_BASE_INFO结构
    } STRUCT_DBSERVER_AUTHRESULT;
    typedef enum
    {
    RESULT_AUTHRESULT_OK= RESULT_NOERROR,
    RESULT_AUTHRESULT_PASSWORD= DBSERVER_ERROR_BASE+ 0x0001,
    RESULT_AUTHRESULT_NOEXIST,
    };


    //DBServer
    对加好友的应答 ->Appserver
    #define DBSERVER_ADDBUDDYRESP DBSERVER_CMD_BASE+ 0x0002


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    CHAR strAddUserName[MAX_USERNAME + 1];


    //
    如果操作成功,此出接
    IMBUDDY_ADD_INFOAddBuddyInfo;
    } STRUCT_DBSERVER_ADDBUDDYRESP;


    //DBServer
    对加好友的应答 ->Appserver
    #define DBSERVER_DELBUDDYRESP DBSERVER_CMD_BASE+ 0x0003


    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    UINT nDelUserID;
    } STRUCT_DBSERVER_DELBUDDYRESP;


    //
    修改信息结果
    #define DBSERVER_EDITINFORESP DBSERVER_CMD_BASE+ 0x0004
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    CHAR strPassword[MAX_PASSWORD + 1];
    IMPERSON_BASE_INFOUserInfo;
    } STRUCT_DBSERVER_EDITINFORESP;


    //
    查询好友信息结果 dbg->appsvr
    #define DBSERVER_QUERYINFORESP DBSERVER_CMD_BASE+ 0x0005
    //
    此包为不定长包,注意判断
    typedef struct
    {
    PACKETHEADER Header;
    UINT nSourceID;
    UINT nUserID;
    UINT nQueryUserID;
    //
    如果操作成功
    IMPERSON_BASE_INFO UserInfo;//
    好友的个人详细信息
    /*
    CHAR strUserName[MAX_USERNAME + 1];
    CHAR strNickName[MAX_NICKNAME + 1];//
    昵称
    BYTE bPicture;//
    图标ID
    */


    } STRUCT_DBSERVER_QUERYINFORESP;
    #define DBSERVER_AUTHIMSERVER DBSERVER_CMD_BASE+ 0x0006
    enum
    {
    AUTH_IMSERVER_OK= RESULT_NOERROR,
    AUTH_IMSERVER_NOEXIST= DBSERVER_ERROR_BASE+0x0010,
    AUTH_IMSERVER_PASSWORD
    };


    /*  
    状态码: 0x0000  验证成功
           0x7010  
    没有注册的IMServer
           0x7011
    注册密码错误
    */


    //DBSERVER-APPSERVER
    #define DBSERVER_ADDGROUPRESP DBSERVER_CMD_BASE+ 0x0010
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    CHAR strGroupName[MAX_GROUPNAME + 1];
    UINT nGroupID;//
    增加失败时无效
    } STRUCT_DBSERVER_ADDGROUPRESP;
    enum
    {
    ADDGROUP_SUCCESSED= RESULT_NOERROR,
    APPGROUP_EXIST= DBSERVER_ERROR_BASE +0x0020,
    APPGROUP_INVALID_NAME= DBSERVER_ERROR_BASE+0x0021
    };


    //DBSERVER-APPSERVER
    #define DBSERVER_DELGROUPRESP DBSERVER_CMD_BASE+ 0x0011
    typedef struct
    {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nGroupID;
    } STRUCT_DBSERVER_DELGROUPRESP;
    enum
    {
    DELGROUP_SUCCESSED= RESULT_NOERROR,
    DELGROUP_NOEXIST= DBSERVER_ERROR_BASE +0x0022,
    };




    #define DBSERVER_EDITUSERGROUPRESP DBSERVER_CMD_BASE + 0x0012
    typedef struct  {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nBuddyID;
    UINT nGroupID;
    }STRUCT_DBSERVER_EDITUSERGROUPRESP;


    #define DBSERVER_RENAMEGROUPRESP DBSERVER_CMD_BASE + 0x0013
    typedef struct  {
    PACKETHEADER Head;
    UINT nSourceID;
    UINT nUserID;
    UINT nGroupID;
    CHAR strNewGroupName[MAX_GROUPNAME + 1];
    }STRUCT_DBSERVER_RENAMEGROUPRESP;




    更改用户状态应答
    //#define DBSERVER_CHANGE_STATUSRESPDBSERVER_CMD_BASE + 0x0014
    //typedef struct 
    //{
    // PACKETHEADERHeader;
    // UINT nSourceID;
    // UINT nUserID;
    // BYTE eStatus;
    //}STRUCT_DBSERVER_CHANGE_STATUSRESP;


    #pragma pack()
    #endif

    下载地址:

    即时通讯软件(开源例子)

    点击下载


    即时通讯软件源码[仅供学习参考,不能用于商业用途]
    点击下载


    本人的技术博客和个人网站

    1 :点击进入  2:点击进入   


    下载不了的朋友可以加我QQ1152597562我在线发给你


    展开全文
  • JAVA上百实例源码网站

    千次阅读 多人点赞 2015-08-12 11:18:00
    JAVA源码包1 JAVA源码包2 JAVA源码包3 JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA开源包8 JAVA开源包9 JAVA开源包10 JAVA开源包11 JAVA开源包12   ...

    JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA开源包8 JAVA开源包9 JAVA开源包10 JAVA开源包11 JAVA开源包12

     

    简介      

    笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载!
    这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景
     
    Java 源码包
    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。
    Calendar万年历 1个目标文件
    EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例……
    ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。
    EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context……
    ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。
    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除……
    Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。
    Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。
    Java 组播组中发送和接受数据实例 3个目标文件。
    Java读写文本文件的示例代码 1个目标文件。
    java俄罗斯方块 一个目标文件。
    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。    设定字符串为“张三,你好,我是李四”    产生张三的密钥对(keyPairZhang)    张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节    通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息……
    Java利用DES私钥对称加密代码实例 同上
    java聊天室 2个目标文件,简单。
    java模拟掷骰子2个 1个目标文件,输出演示。
    java凭图游戏 一个目标文件,简单。
    java求一个整数的因子 如题。
    Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。
    Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。
    Java数组倒置 简单
    Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印   util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。
    Java右键弹出菜单源码 简单
    Java圆形按钮实例代码,含注释 两个目标文件,自绘button。
    Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟   用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。
    Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例   Message-Driven Bean EJB实例源代码,演示一个接收购物订单的消息驱动Bean,处理这个订单同时通过e-mail的形式    //给客户发一个感谢消息,消息驱动Bean必须实现两个接口MessageDrivenBean和MessageListener    在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话……    还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。
    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器   Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。
    递归遍历矩阵 1个目标文件,简单!
    多人聊天室 3个目标文件 第一步:运行ServerData.java  启动服务器,然后服务器处于等待状态 第二步:运行LoginData.java   启动(客户端)登陆界面  输入用户名  ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端  实现群聊。
    浮动的广告 嵌套在html中
    各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例   各种EJB之间的调用源码示例,用远程接口的引用访问EJB、函数将被FirstEJB调用,同时它将调用secondEJB
    基于JAVA的UDP服务器模型源代码 2个目标文件 摘要:Java源码,网络相关,UDP   基于JAVA的UDP服务器模型源代码,内含UDP服务器端模型和UDP客户端模型两个小程序,向JAVA初学者演示UDP C/S结构的原理。
    简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。
    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件
    利用随机函数抽取幸运数字 简单
    EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实世界模型   基于EJB的真实世界模型,附源代码,部分功能需JSP配合完成。
    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理   这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失。使用时候只需在控制台窗口执行jar就可以了。
    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu   Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。
    Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码,文件操作,压缩包查看   Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。
    Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,系统相关,数字签名,数字证书   Java 数字签名、数字证书的相关实例。    关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于验证签名。    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂……
    Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录   一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。
    JAVA+JSP的聊天室 8个目标文件 简单
    JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期
    Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器   Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:    可直接输入文件名或网络地址,但必需事先连入网络。
    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序   Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构,    当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。    QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。
    Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏   Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。
    Java编写的显示器显示模式检测程序 2个目标文件 内容索引:JAVA源码,系统相关,系统信息检测   用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。
    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字   Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。
    Java吃豆子游戏源代码 6个目标文件 内容索引:JAVA源码,游戏娱乐,JAVA游戏源码   JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。
    Java从网络取得文件 1个目标文件 简单
    Java从压缩包中提取文件 1个目标文件 简单
    Java存储与读取对象 1个目标文件 如题
    Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板   使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。
    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制   Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。
    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制   Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。
    Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果   Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image……
    Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密   WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。
    Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书   Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。
    Java聊天程序,包括服务端和客户端 2个目标文件,如题。
    Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视   用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。
    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择   Java语言开发的简洁实用的日期选择控件,源码文件功能说明:    [DateChooser.java] Java 日期选择控件(主体类) [public]    [TablePanel.java] 日历表格面板    [ConfigLine.java] 控制条类    [RoundBox.java] 限定选择控件    [MonthMaker.java] 月份表算法类    [Pallet.java] 调色板,统一配色类 
    Java扫雷源码
    Java生成自定义控件源代码 2个目标文件
    Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP   Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。
    Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP   Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。    部分源代码摘录:    ftpClient = new FtpClient(); //实例化FtpClient对象    String serverAddr=jtfServer.getText(); //得到服务器地址    String user=jtfUser.getText(); //得到用户名    String pass=jtfPass.getPassword().toString(); //得到密码    ftpClient.openServer(serverAddr); //连接到服务器    ftpClient.login(user,pass); //在服务器上注册    InputStream is=ftpClient.list(); //得到服务器目录与文件列表输入流    StringBuffer info=new StringBuffer(); //实例化StringBuffer对象,用于输出信息    int ch;    while ((ch=is.read())>=0){ //未读完列表,则继续    info.append((char)ch); //增加信息    ……
    Java实现的点对点短消息发送协议(smpp)开发包源码 70个目标文件,如题。
    Java实现的放大镜效果附有源文件 1个目标文件 内容索引:Java源码,初学实例,放大镜,哈哈镜   Java实现的放大镜效果附有源文件,编译环境最近出了问题,因此没有测试,也没有抓到图,希望各位自行测试一下。
    Java实现跟踪鼠标运行坐标的源码 1个目标文件 内容索引:JAVA源码,系统相关,鼠标钩子   Java编写的一个小程序,用以实现跟踪鼠标的运行位置(坐标),程序很小,很实用,暂时抓不到截图。
    Java实现移动的遮照效果 1个目标文件 摘要:Java源码,初学实例,遮照效果   Java实现移动的遮照效果,先实现椭圆形的遮罩,实例化媒体加载器,最后在创建缓冲区中的图像形成遮罩效果,而且它是会移动的。
    Java鼠标拖拽功能 1个目标文件 Netbeans平台下实现的JAVA 拖放效果的一个实例,包括源代码和所需的图片资源。 (运行后会全屏显示窗体,没有关闭按钮,可使用快捷键Ctrl + F4关闭~)
    Java图片倒影效果实例源码 1个目标文件 摘要:Java源码,图形操作,图片倒影   Java图片倒影效果实例源码,有意思也很有参考价值的一个Java图像处理小程序,先读取图像然后进行图像重绘,产生倒影的效果,仅供参考。
    java网络五子棋的源代码 7个目标文件 AVA网络五子棋,实现基本功能,无多余花哨内容,适合大学生课程设计学习使用,内含完整可运行源代码及运行指导视频,Eclipse环境。
    Java文件选择器源代码 2个目标文件 摘要:Java源码,文件操作,文件选择器   Java文件选择器源代码
    Java文字跑马灯与信息窗口 1个目标文件 摘要:Java源码,文件操作,跑马灯   Java文字跑马灯效果与信息窗口,将一段文字按照滚动的方式显示出来,在网页设计中比较常见,本例使用Java实现文字跑马灯效果。
    Java写的ATM机取款模拟程序 9个目标文件 内容索引:JAVA源码,综合应用,ATM,JAVA,模拟   基于Java技术,只实现了ATM机的取款过程,有兴趣和有能力的高手可以再加以改进,这样就更完美了。可作为Java初学者《面向对象》编程的一个很好范例。      在这个程序中,用到以下JAVA类库:       dataAccess(数据操作)类:包含用于数据库的相关操作    atmScreen(ATM屏幕)类:主要创建各操作窗体和相应按钮事件    Account(用户帐户)类:包含用户信息的验证、余额查询和扣钱等方法    readCard(读卡机)类:包含读取用户卡号和退卡(退出系统)    moneyMac(取钱机)类:只用于打印清单    Atm(系统)类:系统主方法的开始,负责调用其他类
    Java写的巨型LCD液晶时钟显示屏 8个目标文件 内容索引:JAVA源码,综合应用,电子钟,LCD,液晶   一个巨型LCD数字电子时钟,用JAVA写的,运行截图如上示。它还带有右键菜单,LCD颜色可以变换等。
    Java用GZIP压缩解压文件 1个目标文件 摘要:Java源码,文件操作,GZIP   Java使用GZIP压缩解压文件,如果你正在使用Java开发文件压缩或解压的功能,那么Gzip应该来说是比较值得参考的,那么本实例或许正是您需要的,Java基于Gzip的文件压缩与解压程序源代码,供源码下载者参考。
    Java用Zip压缩多个文件实例源码 1个目标文件 摘要:Java源码,文件操作,压缩文件   Java用Zip压缩多个文件,一个Java文件操作小实例,用ZIP同进压缩多个文件,实际是打开文件读取,然后再利用ZipEntry实例化待压缩的条目列表,将ZIP条目列表写入输出流,从源文件得到文件输入流,写入缓冲数据等。
    Java游戏使命的召唤源码 5个目标文件 内容索引:JAVA源码,游戏娱乐,Java游戏源码,使命的召唤   Java游戏使命的召唤源码,又名:Call of Duty,MFORMA超精典游戏,有兴趣的可以重新编译学习一下。
    Java源码的仿QQ聊天程序 如题
    Java中的Blowfish对称密钥加密算法类和实例 2个目标文件 内容索引:Java源码,算法相关,Blowfish,JAVA加密,对称密钥算法   JAVA中的Blowfish加密属于对称密钥算法,如果知道密钥,则可以对加密后的数据解密,但如果如果不知道密钥,基本上是不可能的,因此,这就决定了它的先天不足,就是带来的密钥的管理问题。
    Java中的SSL及HTTPS协议实例源码 1个目标文件 摘要:Java源码,网络相关,HTTPS协议   Java中的SSL及HTTPS协议实例源码,使用SSL套接字的HTTPS服务器端,接受客户端的一个连接,并返回Hello,world.    本例中使用8080端口创建SSL服务器套接字,返回缺省的SocketFactory对象,生成PrintWriter对象,用于输出信息。
    Java自定义光标程序源码 1个目标文件 摘要:Java源码,窗体界面,自定义光标   Java自定义光标程序源码,将光标定义成其它形式的图标,利用ToolKit对象得到图像,实例化自定义光标对象,增加组件等。
    Jav动画图标源码(显示GIF图像) 1个目标文件 摘要:Java源码,图形操作,动画图标   Jav动画图标源码(显示GIF图像),学习如何连续加载GIF图像从而生成动画图标,先创建一个用于显示动画图标的数组,创建构造函数,初始化数组,重载组件绘制方法,实例化Timer对象显示动画,增加组件到窗口上。
    JSP树型菜单 DTree html+js实现
    Notebook源码,Java记事本 2个目标文件 摘要:Java源码,文字字符,Java记事本   Java记事本:Notebook源码下载,虽然是个功能不多的记事本,但通过这个Java程序你可以学习到不少小技巧呢!比如创建界面、安装各种监听器,在窗体上布局主菜单,保存用户编辑的文件,以及如何使用"另存为"对话框保存文件,如何新建和打开一个文档等,源代码内包括了相当多的注释,是Java新手学习JAVA编程的好范例。    当用户按下窗口的“关闭”时,会自动调用此方法。
    PDF分割与合并源代码 3个目标文件 能把一个PDF分割成多个单页的PDF,把多个PDF合并成一个PDF。
    QR解码的Java实现程序 25个目标文件 内容索引:JAVA源码,媒体网络,QR解码,Java   用Java实现QR解码的源程序代码。
    编译原理--LR(1)分析表构造(JAVA) 8个目标文件 如题
     chuanqisifu登录器Java版附源代码 2个目标文件,如题。
    单机版java五子棋V1.1 5个目标文件 完整的单机版java五子棋游戏,主要是判定胜负的算法,使用数组进行遍历,很容易理解。
    很强的Java加密解密算法源码 3个目标文件 内容索引:Java源码,算法相关,JAVA算法,加密解密   很强的JAVA加密、解密算法源码,一共有6种算法可供选择,另外还可以直接生成ZIP压缩文件。
    简单的注册与登录功能 6个目标文件 一个简单的用户登录界面 要连接数据库的 有登陆 注册功能 仅供初学者学习
    简单模拟的J2ME潜艇大战源代码 4个目标文件 内容索引:JAVA源码,游戏娱乐,J2ME手机游戏,潜艇大战   简单模拟的J2ME手机游戏潜艇大战的源代码,界面有些粗糙,不过基本功能都实现了,发弹,躲闪等,可以帮助新手提高J2ME技术。
    局域网广播系统java源码 如题
    java游戏 可实现网上对战和人机对战 7个目标文件
    雷电游戏JAVA版源程序 8个目标文件 这是一个简单的Java仿雷电游戏(源码见包内),共设置有三关三个小BOSS。采用有GreenJVM发布,因此可以运行在未装载JRE的Windows系统之上。
    网络蚂蚁Java版 14个目标文件 用Java实现的网络蚂蚁,功能强大,方便上传下载,断点续传等操作
    网页浏览器 如题
    java学生成绩系统(图形界面) 14个目标文件 如题。
    java学生课程管理系统 6个目标文件 如题。
    一个较初级的EJB商业应用的例子 如题
    一个支持servlet的web服务器 14个目标文件 如题。
    用Java加密类实现DES、RSA及SHA的加密算法 9个目标文件 如题。
    用java写的SFTP代码 用java实现的Tftp(Sftp)客户端与服务器程序。在这个程序中用到了一个“状态”的机制:客户端与服务器端在开始运行时有相同的状态,通过用户的输入或程序内部运行的机制,程序可以转到不同的状态,在不同的状态下程序实现了不同的功能。
    用jdom解析xml 1个目标文件  要使用jdom解析xml文件,需要下载jdom的包,我使用的是jdom-1.1。解压之后,将lib文件夹下的.jar文件以及build文件夹下的jdom.jar拷贝到工程文件夹下,然后就可以使用jdom操作xml文件了。
    copass源代码 Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架. Compass实现了通过注册Hibernate的相关事件实现了数据的实时索引..
    DataBuffer在Java中使用ADO.NET 本源码的作者对ADO.Net有着相当深厚的感情,有着对JAVA中DataBuffer类库运用的出色理解。它是开源项目javadesktop中的一个子项目,通过它你可以真正的理解DataSet、DataTable、DataRow……类库的使用。对这方面不太熟的开发者绝对有帮助。
    HAHA CHAT Java仿QQ聊天程序源代码
    iCHAT聊天室基于Java 内容索引:JAVA源码,媒体网络,iChat,Java聊天室   iChat LE 1.1版源码,一个比较大型的JAVA版聊天室程序,可能要用到DLL文件,压缩包内已经有了,一年前的程序。
    IP定位器
    J2ME黑白棋游戏手机版 v2.1完整源码 J2ME冒险游戏CASPER源代码 J2me月光战机游戏源码
    JasperReports 报表类库v3.5 Java24点游戏逼真图形版代码
    Java 3D魔方游戏源码及中文注释包 内容索引:JAVA源码,游戏娱乐,JAVA3D,魔方游戏   很强的JAVA 3D魔方游戏,这是源码及中文注释包,作者的开发文档和思路都在里面,对学习很有帮助!
    allin.dev 重载了ListView,更好的实现!
    copass源代码
    Java (Jsp)制作简单的表单程序
    java Socket通信实现
    Java 版的酒店系统,貌似完整
    Java 电梯模拟程序 v2.0
    Java 飞机订票
    Java 高考信息管理系统 SQL数据库
    java 一个消息发布网站
    Java+MsSQL超市进销存(毕业设计及答辩资料)
    Java+sqlserver2000做的员工管理系统
    Java+SQL信用卡管理系统源代码
    Java+XML日程提醒系统
    Java+XML写的RSS阅读器
    JAVA版Swing星际争霸游戏源代码
    Java半透明图片实现的步骤及源代码
    JAVA帮助视图组件库 Help GUI 1.1源代码
    Java毕业论文:搜索引擎系统附源代码
    JAVA毕业设计_员工管理系统含文档
    Java毕业设计一款J2me飞行射击游戏
    Java仓库管理系统,Access数据库
    Java超市管理,SQL2000+源代码
    Java超市进销存系统
    Java大型CERP进销存系统
    Java电子相册源码
    Java赌神游戏网络版源代码
    JAVA短信网关平台(值得一看)
    Java多用户聊天室程序(毕业设计)
    Java仿Vista界面风格的登录窗口
    Java仿千千静听音乐播放器源代码
    Java火影忍者游戏源代码
    Java机车狂飙源代码
    JAVA开发的打字软件源程序
    Java开发的简单WEB服务器源码
    Java聊天程序(JBuilder)
    Java聊天软件Visual Chat v1.91源码
    Java模仿的MSN聊天软件
    Java企业人事管理系统源码
    JAVA轻量级的MVC框架应用实例
    Java软件度量源码
    Java声音播放程序源代码
    JAVA实现CLDC与MIDP底层编程的代码
    JAVA实现超级玛丽
    Java实现的视频播放程序源码
    Java手机短信项目源码
     
    Java手机游戏大富翁源代码+注释
    Java手机与计算机互发彩信源码
    Java坦克大战网络对战版源代码
    Java跳棋(基于SWT)
    Java通讯录手机版源码
    Java图片翻折,将图像压扁
    Java图书馆管理系统源程序
    JAVA图书馆管理系统源码
    Java图像文件的缩小与放大
    Java推箱子游戏(50关+音效)
    JAVA网络抓包程序
    Java文件切割器源代码
    java项目源码在线相册系统
    Java写的天气预报软件
    Java写的图片幻灯片切换特效
    Java写的一个mp3播放器
    Java学生信息管理系统源码包
    Java用的在线地图浏览模块
    Java游戏沙丘城堡源代码
    Java游戏中斜视角编辑器及引擎源代码
    Java约瑟夫环演示Applet源码
    Java中的EJB编程实例代码
    Java转换xml
    JLoading Java版的Mp3下载工具
    JSP 动态数据菜单
    JSP 学生管理系统(全部代码+数据库)
    jsp+servlet+javabean+mysql党员信息管理系统
    jsp高校科研项目管理系统
    JSP开发的项目跟踪系统
    jsp生产管理系统
    msn聊天程序Java仿真代码
    P2P--多用户在线聊天室(Java源码)
    P2P源码 Azureus 2.5.0.2(JAVA)
    Skype 4.0 Java版源码及开发文档
    SnakeScript Java游戏脚本引擎 v1.1
    Tsinghua IP 清华大学学生写的一个有关IP的Java程序
    Visualvm 基于JAVA的CPU硬件资源管理器源程序
    weblogic+j2ee构建音乐网站(原代码+数据库)
    web综合教学管理系统
    YOYOPlayer 基于Java的网络播放器源代码
    宾馆管理系统
    餐饮门户
    超市购物系统
    车间管控
    打地鼠游戏
    单位固定资产登记管理系统JAVA版
    电子书店管理系统
    分离SQL Server数据库
    基于BS结构的Java可视化工作流定制软件
    基于J2ME的Java游戏梦幻炸弹人源程序
    基于JAVA的ICQ系统
    基于Java的mp3播放器源代码
    基于JAVA的日程提醒簿
    基于Java的小型人事管理系统,带数据库
    基于Java的邮件服务器源程序
    基于MVC的Java资源管理器 v2.0
    季风进销存管理系统(JSP版)
    家庭多媒体播放器
    开源Winzip压缩工具Java版源码
    客户管理系统 Alfresco Content Management
    乐趣大型购物系统
    类似QQ的聊天软件JAVA版源码(附设计文档)
    连接postsql数据库的java代码
    泡泡堂战车游戏JAVA版源码
    配置ODBC数据源
    企业进销存管理系统
    轻松商城系统
    手机游戏J2ME毕业设计
    书籍管理系统
    网络电视源代码TV-Browser
    蜀山剑侠传游戏J2ME手机版源代码
    网上书店
    物业管理系统毕业设计+源码
    销售预测系统PDP系统
    选修课程管理系统V1.2.3
    阳光酒店管理系统
    一款Java网络格斗游戏源码
    用iText类库制作PDF文档
    用JAVA做的聊天软件,有安装程序和源代码
    在Servlet中连接数据库的Java代码
    中国移动业务管理系统源码(SSH框架)

    JAVA开源包
     
    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。
    Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends  java.applet.Applet 简单实现!~
    网页表格组件 GWT Advanced Table GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能!
    Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。
    github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。
    java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的定义 4. 使用redis作缓存时,支持list类型的高级数据结构,更适合论坛帖子列表这种类型的数据  5. 支持混合使用redis缓存和memcached缓存。可以将列表数据缓存到redis中,其他kv结构数据继续缓存到memcached 6. 支持redis的主从集群,可以做读写分离。缓存读取自redis的slave节点,写入到redis的master节点。
    Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。
    搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件,  以满足该类需求可以通过快速配置来开发。AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。
    WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。
    Java注册表操作类 jared jared是一个用来操作Windows注册表的 Java 类库,你可以用来对注册表信息进行读写。
    GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,时间显示和处理方法前帧。
    Java的PList类库 Blister Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。
    重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。
    OpenID的Java客户端 JOpenID JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。
    JActor的文件持久化组件 JFile JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。
    Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。
    OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth 1.0a 和 OAuth 2.0 的框架,提供了简单的方式通过社交媒体进行身份认证的功能。
    Eclipse的JavaScript插件 JSEditor JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。
    Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接池的性能,根据某些测试数据发现,BoneCP是最快的连接池。BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。
    异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用。
    Java转C++代码工具 J2C J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。
    OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用也较为便捷。
    Java邮箱地址验证 jaev jaev 是一个用来验证电子邮箱地址是否有效的 Java 项目。
    Java的FastCGI网关 jFastCGI jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。
    Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。
    Java 穿越NAT方案 JSTUN.tar JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。
    在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。
    brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。
    API访问授权的开放标准 OAuth OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密 码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权 的标准。
    Java的命令行处理类库 JArgs JArgs 是一个 Java 语言用来处理应用程序的命令行参数的类库。
    高性能内存消息和事件驱动库 Chronicle Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。
    google-api-translate-java(Java 语言对Google翻译引擎的封装类库)
    语音识别程序 SpeechLion.tar SpeechLion 是一个语音识别程序,主要用来处理桌面命令,基于 Sphinx-4 语音识别引擎开发。用户可以通过该软件来控制 Linux 桌面,例如打开google搜索、鼠标点击、下一窗口、打开帮助、静音等操作。
    Java发送短信包 LemonSMS LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。
    远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。
    最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目
    Java日历空间 JCalendarButton JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。
    网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在搜索的同时可以下载遇到的链接所指向的所有的或预定义的范围的内容。
    WebSocket协议的Java实现 WebSocket4J WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。
    Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码图片。
    Java 命令行解析器 JOpt Simple JOpt Simple 是一个简单的、测试驱动的命令行解析器,支持 POSIX getopt() 和 GNU getopt_long()
    Java的HTTP代理服务器 Smart Cache Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。
    高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。
    哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512".
    高性能RPC框架 nfs-rpc nfs-rpc是一个集成了各种知名通信框架的高性能RPC框架,目前其最好的性能为在采用grizzly作为通信框架,采用pb作为序列化/反序列化时,tps为168k次/秒。
    其支持的功能主要为: 1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。
    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的响应 使用泛型来做强类型编程 多协议扩展支持(REST, RPC, SOAP, etc)
    Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。
    Java文件上传组件 COS
    FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。
    Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy  是一款 Eclipse 的插件,用来对 HTML 文件内容进行清洗和格式化处理。它采用的是 JTidy 库对HTML进行处理。
    INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。
    拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。
    FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。
    Java的命令行进度条 JCmdLineProgess JCmdLineProgess 是一个 Java 类库,用来提供在命令行中显示进度条的功能。
    Tomcat 安装apr 支持 Tomcat Native Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。
    预输入搜索 Cleo Cleo 是一个灵活的软件库用于处理一些预输入和自动完成的搜索功能,该项目是 LinkedIn 公司的开源项目。
    SwingSet 增强现实标记跟踪软件库 AccuTag AccuTag是AR(增强现实)标记跟踪软件库。它利用GPGPU的快速和精确跟踪。
    条形码扫描和识别程序 LVBarcode LVBarcode 支持下列的条形码格式:Codabar,I2of5,Code39,ExCode39?,EAN-8,EAN-13,Code128 A,Code128 B,Code128 C,MSI,UPC-A,UPC-E.
    中文转拼音库 pinyin4j Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。
    异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient 组件。HttpAsyncClient 的出现并不是为了替换 HttpClient,而是作为一个补充用于需要大量并发连接,对性能要求非常高的基于HTTP的原生数据通信,而且提供了事件驱动的 API。
    NIO网络框架 xSocket xSocket是一个轻量级的基于nio的服务器框架用于开发高性能、可扩展、多线程的服务器。该框架封装了线程处理、异步读/写等方面。
    Java多线程程序死锁检查 JCarder JCarder 是一个用来查找多线程应用程序中一些潜在的死锁,通过对 Java 字节码的动态分析来完成死锁分析。
    Java的Flash解析、生成器 jActionScript jActionScript 是一个使用了 JavaSWF2 的 Flash 解析器和生成器。提供了一个基于对象模型的 ActionScript 字节码,并提供了 ActionScript 字节码统计工具。
    Java类重加载工具 JReloader JReloader 是一个用来重新加载class文件而无需重启JVM的工具。
    PHPJava Bridge php调用java类
    Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。
    SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。
    Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,无缝集成的IDE(语法着色,代码导航,重构等)的语法和操作代码完全分离。最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。
    日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。
    彩信发送开发包 apimms apimms 提供了各种语言用来发送彩信(MMS)的开发包,支持附件发送。
    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。
    Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,秒杀当前流行的模板引擎。而且还易学易用。
    Java的COM桥 JCom JCom (Java-COM Bridge) 可以让 Java 程序轻松访问 Windows 平台上的 COM 组件。
    JARP JARP是为petri 网提供的一个Java编辑器,基于ARP分析器。可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。
    activemq(JMS消息服务器 ActiveMQ) ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
    Ajax框架 ZK.rar ZK是一个Ajax Java Web框架,利用少量代码就能够开发出拥有Rich UI的Web应用。ZK提供基于XUL的标记语言和事件驱动的组件,可以让你像开发桌面应用程序一样简单。支持EL表达式和脚本语言包括:JavaScript、Ruby和Groovy等。支持Annotation及数据绑定。集成Google Maps、FCKeditor、DOJO以及Timeline。 
    Atom协议实现 Abdera.rar Apache Abdera是Atom联合协议(Atom Syndication)和Atom发布(Atom Publication)协议的开源实现,目前尚处于“孵化”阶段。最近,Abdera到达了0.40里程碑版,朝着成功孵化迈出了重要一步。
    CKEditor for Java.rar 在线网页编辑插件(用浏览器编辑后所见即所得),支持多种平台下的脚本(asp aspx php cfm Dhtml htc),还集成了上传图片组件,含简、繁中文
    cloudxy(弹性云计算平台 Cloudxy).rar Cloudxy 立足于实现虚拟子网(以太网)的弹性云计算平台 该项目主要包含有两个子项目: HLFS - 虚拟机分布式镜像存储 (类似于亚马逊EBS,首先发布出来) ECM - 虚拟环境管理系统 (后续发布)
    Compass UI 工具 Compass.app.rar Compass.app 是一个针对 Sass 和 Compass 的菜单工具,帮助设计师通过 UI 的方式编译样式,而不用去记住命令行。它是用 JRuby 开发的,可以在多个平台上使用,而不用安装 Ruby 环境。
    dnsjava(Java的DNS开发包 dnsjava).rar dnsjava是DNS协议的一个Java开源实现。
    DNS服务器 Eagle DNS.zip Eagle DNS 是一个用 Java 语言开发的功能强大的多线程的平台无关的DNS服务器,基于 dnsjava 类库,支持 Primary Zones 和 Secondary Zones。
    EclipseHTMLEditor.rar Eclipse HTML编辑器插件
    Eclipse的语法着色插件 Colorer Take.rar Colorer Take 能为在Eclipse中打开的各种类型源代码文件按语法着色。支持150多种语言。
    ehcache(Java缓存框架 EhCache).rar EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
    Facebook API 的 Java 封装请求处理组件 RestFB.zip facebook的restAPI和graphAPI封装,供java调用。
    Facebook个人资料导出工具 fbpwn.zip
    fbpwn(Facebook个人资料导出工具).rar
    Google API for Java.zip
    grimwepa(无线密码破解工具).rar 一个密码破解WEP和WPA加密的接入点(路由器)
    gtd-free(个人待办事项管理软件 GTD-Free).rar
    GUI界面引擎 SwiXml.zip
    Hibernate搜索框架 Hibernate Search.zip
    HTML5模板引擎 Thymeleaf.zip
    HTML文档解析器 HTMLParser.rar
    HTML解析器 jsoup.rar
    iqq(开源 QQ 工具 iQQ).rar
    jacob-liang-platform-uus(系统平台统一用户 ).rar
    jalarm(个人提醒工具 jAlarm).rar
    Java 3D图形引擎 Catcake.zip
    Java HTTP服务器 TJWS.zip
    Java 插件框架 jspf.zip
    Java 缓存系统 JBossCache.zip
    Java 计算机视觉库 BoofCV.zip
    Java-COM中间件 JACOB.zip
    Javascript 扩展工具包 j-et.rar
    Java串口开发包 RXTX.zip
    Java五线谱处理类库 abc4j.zip
    Java任务调度 jconch.rar
    Java加密包 Jasypt.zip Jasypt这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成hibernate,Spring Security(Acegi)来增强密码管理。
    Java加密库 JSDSI.rar
    Java单点登录系统 JA-SIG CAS.rar
    Java即时战略游戏 StarCraft Ⅰ.rar
    Java和DLL(COM)互操作 Jawin.zip
    Java图像处理类库 Java Image Filters.zip
    Java图形组件 JGraph.rar
    Java图形验证码 SimpleCaptcha.rar 一套用于生成各种图形验证码的库(Java)
    Java图表 JFreeChart.zip
    Java多播通讯框架 JGroups.zip JGroups是一个可靠的群组通讯Java工具包。它基于IP组播(IP multicast),但在可靠性,组成员管理上对它作了扩展。
    JAVA字节码操作库 BCEL.zip
    Java实现的EverBox库 Everbox4j.zip
    Java实现的Web服务安全规范 WSS4J.zip
    Java对象验证框架 OVal.zip
    Java常用工具包 Jodd.zip
    Java应用服务器 Tomcat.zip
    Java应用框架 Nutz.rar
    Java开发的SHELL CRaSH.gz
    Java推箱子游戏 JSoko.rar
    Java搜索引擎 Lucene.zip
    Java时间工具包 JTimepiece.zip
    Java本地代码绑定工具 jSegue.zip
    Java本地调用接口 JNative.zip
    Java条形码生成库 Barcode4J.zip Barcode4J由Java语言编写而成,可以灵活的生成条形码。它采用Apache License V2.0许可,这使得它很容易在商业中被使用。它可以让您生成各种流行的一维和二维条码,包括DataMatrix 和 PDF417。以各种格式输出,包括SVG, EPS, bitmaps和Java2D,同样也可根据您的需要添加自己的输出格式。它为各种应用提供了插件,包括最重要的Apache FOP(格式对象处理器)。有一些用户将Barcode4J部署为一个servlet。
    Java桌面搜索 JDesktopSearch.zip JDesktopSearch是一个基于Apache Lucene实现的桌面搜索引擎。它能够索引HTML、XML、OpenOffice、MS Word和PDF文档。其它类型的文件只索引文件名。
    Java桌面程序开发框架 Viewa.zip
    Java模板引擎 FreeMarker.tar.gz
    Java源代码检索系统 JCite.zip
    Java的EPUB类库 Epublib.zip
    Java的HL7解析器 HAPI.zip
    Java的OpenID服务器 JOIDS.rar
    Java的UIMA注解类 uimaFIT.zip
    Java的UI皮肤 Quaqua.zip
    Java神经网络框架 Encog for Java.zip
    Java程序监控API Java Simon.zip
    Java算术表达式计算类库 ExpressionJ.zip
    Java线程错误捕获工具 CheckThread.zip
    Java网页浏览器 Lobo.zip
    Java网页爬虫 JSpider.zip
    Java视觉处理库 JavaCV.rar
    Java论坛系统 JForum.zip
    Java调用本地库 JNAerator.zip
    Java远程终端工具 JTA.rar
    Java邮件服务器 James.rar
    Java邮件检验库 JEmval.zip
    Java验证码生成库 JCaptcha.rar
    JAXP数据验证引擎 Serene.zip
    JBoss事务处理 JBossTS.zip
    JDBC连接池、监控组件 Druid.zip
    JFCSwing用户图形界面 SwingML.rar
    JNI代码生成器 JNIGen.zip
    JSCSS压缩工具 YUI Compressor.zip
    JSON查询语言 Jaql.rar
    JSON类库 Flexjson.zip
    JSP标签 Noka Tag.rar
    JS和CSS压缩混淆 JsCompressor.rar
    js文件压缩工具 Closure Compiler.rar
    jviolajones(人脸检测算法).rar
    lobby(经典board游戏 Domination).rar
    makagiga(开源个人桌面软件 Makagiga).rar
    MathML渲染器 JEuclid.rar
    OData的Java实现 odata4j.rar
    P2P应用程序协议框架 Java BEEP Core.zip
    paoding(中文分词库 Paoding).rar
    PDF 文档字体处理 FontBox.zip
    QQ农场外挂JAVA版本 qqhack.rar
    QQ登录的Java接口 open-qq.zip
    ralasafe(访问控制(权限管理)中间件 ).rar
    RPG游戏引擎 Arianne.zip
    SAT算法库 OpenSAT.zip
    sigar_mirror(系统信息收集API_Sigar).rar
    SNMP的MIB浏览器 JMIBBrowser.zip
    SQL解析类库 SQLJEP.zip
    SSH服务端 Apache SSHD.rar
    swiftp(Android上的FTP服务器 SwiFTP).rar
    swing-explorer(Swing开发辅助工具).rar
    Swing开发框架 Griffon.zip
    tbschedule(淘宝任务调度分配器).rar
    Tomcat的管理和监控 PSI Probe.zip
    WebDAV网关 Davenport.rar
    WebSocket通讯框架 jWebSocket.rar
    Web代理服务器 RabbIT.tar.gz
    Web服务框架 Apache Axis.rar
    Web相册平台 Apache PhotArk.rar
    Web集成开发环境 Cloud9 IDE.zip
    WordNet的Java包 JWordNet.zip
    XML解析器 Xerces.rar
    Yahoo的分布式流计算平台 S4.rar
    YAML解析器 SnakeYAML.zip
    zaproxy(Web渗透测试 Zed Attack Proxy).rar
    zxing(条形码处理类库).rar
    业务流程管理(BPM)和工作流系统 Activiti.zip
    个人博客软件 PersonalBlog.zip
    个人知识库 Piggydb.zip
    中国移动短信协议CMPP封装 hicmpp.zip
    中文分词工具包 smallseg.jar
    中文分词库 IKAnalyzer.zip
    中文自然语言处理工具包 FudanNLP.zip
    人工智能工具包 OpenAI.zip
    企业信息系统开发平台 JBob.zip
    使用Redis存放Session RedisManager.zip
    入门级j2ee开源项目 simplejee.zip
    全文搜索服务器 Solr.tgz
    分布式缓存框架 SwarmCache.zip
    加密库 BeeCrypt.zip
    即时消息传输平台 Openfire.rar
    国产Ajax框架 Buffalo.rar
    国产纯Java多核体系结构模拟器 Archimulator.zip
    在Java中运行Perl脚本 JERL.zip
    坦克机器人战斗仿真引擎 Robocode.zip
    多播事件总线 Avis.zip
    多环境应用程序框架 WebOnSwing.rar
    多用户在线游戏服务器端框架 Marauroa.tar.gz
    大文件上传的Java Applet mupload.rar
    天乙社区.rar
    密钥管理工具 Keytool-IUI.zip
    富客户端开发框架 Spring Richclient.tar.gz
    开放实时数据处理平台 Twitter Storm.zip
    开源JSF组件库 JQuery4JSF.rar
    开源LDAP浏览器 JXplorer.zip
    开源事务管理器 JOTM.zip
    开源工作流系统 JWFD.rar
    开源搜索系统 Red-Piranha.zip
    开源日志管理 Logstash.jar
    开源机器人技术中间件 OpenRTM-aist.zip
    开源的Swing组件 JIDE.zip
    开源足球游戏 Slam Soccer.rar
    异步IO框架 Cindy.rar
    懒惰者代码生成器 IdlerCodeGenerator.zip
    拼写检查器 Hunspell.gz
    指纹识别开发包 SourceAFIS.zip
    数字图书制作工具 EpubCheck.rar
    数据库连接池 C3P0.src.zip
    数据持久层框架 Hibernate.zip
    文件上传控件 GWTUpload.rar
    文件压缩解压缩包 Commons Compress.rar
    文件系统API EntityFS.zip
    文字识别工具 Eye.zip
    文本加密解密工具 ImmediateCrypt.zip
    无线消息交换服务 HomerMX.zip
    日历同步统计 GCALDaemon.zip
    日历控件 Click Calendar.rar
    最快速的java代码生成器 rapid-generator.zip
    服务框架 Dubbo.rar
    服务端JavaScript框架 RingoJS.rar
    桌面博客工具 Thingamablog.zip
    桌面图形计算器 GraphingCalculator.jar
    桌面软件开发框架 joyWindow.zip
    游戏引擎 JBox2D.zip
    源问答系统 OpenEphyra.zip
    漏洞检测程序 Yasca.zip
    用户界面框架 XUI.rar
    短信收发包 SMSLib.zip
    磁盘的KV存储 JDBM2.rar
    程序代码编辑器 jEdit.tar.bz2
    第三代的P2P网络 ANts 
    简约的微博同步程序.zip
    编程脚本引擎 Fantom.zip
    网络应用框架 Netty.tar.bz2
    网络抓包工具 jpcap.zip
    网络数据包捕获函数库 jNetPcap.zip
    网页抽取工具 Krabber.rar
    联系人导出 ContactList.zip
    表达式解释引擎 JSEL.rar
    语音合成系统 FreeTTS.rar
    调用远程API规范 XINS.zip
    豆瓣OAuth认证示例项目.rar
    跨平台的文件同步工具 Capivara.rar
    远程文件传输工具 MammothCopy.tar.gz
    通用数据底层 Jsa4j.zip
    遗传算法包 JGAP.zip
    重复数据删除 Duke.zip
    面向对象的JavaScript框架 Dojo.rar
    面向对象的脚本语言 ObjectScript.tar.gz
    高性能Java网络框架 MINA.zip
    高性能web代理程序 hyk-proxy.rar
    高性能的Java 3D引擎 Xith3D.zip

    项目下载


     
     
    展开全文
  • 安全管理:看相关违规操作记录,查询攻击IP地址,自动封闭IP,管理SQL信息 安全设置:根据需要设置一些安全过滤信息 首页菜单管理:可以添加,删除菜单信息,打开窗口,是否显示 管理员管理:对超级管理员信息管理,...
  • 前台:支持(5+3[时尚单页风格])八套模版,可以在后台切换点击:获取地址 QQ 313596790官网 http://www.fhadmin.org/系统介绍:1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成...
    前台:
    支持(5+3[时尚单页风格])
    模版,
    可以在后台切换
    点击:
    QQ 313596790
    系统介绍:
    1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html
    2.因为是生成的html,所以访问速度快,轻便,对服务器负担小
    3.网站前端采用主流的响应式布局,同一页面同时支持
    PC、平板、手机(三合一)
    浏览器访问
    4.springmvc +spring4.3.7+ mybaits3.3 SSM 普通java web(非maven, 赠送pom.xml) 数据库:mysql
    -------------------------------------------------------------------------------------------------------------------------
    业务模块(首页管理)
    1
    . 网站信息:维护网站基本信息,比如标题、描述、关键词、联系方式、地址等

    2
    . 业务说明:网站首页文字业务介绍

    3
    . 公司理念:网站首页展示公司的4个理念
    4
    . 轮播图片:网站首页上面4个轮播图
    5
    . 项目案例:网站首页项目案例
    6
    . 合作伙伴:网站首页底部展示合作伙伴
    7
    . 技术团队:网站底部展示技术团队

    业务
    模块(内容管理)


    1
    .关于我们:维护关于我们栏目数据,百度富文本框
    2
    . 产品案例:维护产品案例栏目数据
    3. 合作共赢:维护合作共赢栏目数据,百度富文本框
    4
    . 新闻动态:维护新闻动态栏目数据,
    新闻预览,权重,隐藏显示(
    前台新闻列表瀑布流展示

    5
    . 联系我们:维护联系我们栏目数据
    地图选点获取经纬度,地图位置描点用于指示公司位置

    6. 访客浏览:列表展示访客留言数据

    模版管理
    (在线编辑前台模版,随改随用,保留编辑记录,任意还原历史模版)

    在线代码编辑器,仿开发工具编辑器,有行号,颜色区分,代码折叠


    后台部分介绍

    8
    .
    代码生成
    :生成完整的模块代码,并保留生成记录模版,可复用 (
    超强悍开发利器

    正向生成: 生成完整的模块,页面、处理类、service层、myabaits的xml 建表的sql脚本等
    反向生成: 任意连接其它数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块
    9
    . 表单构建:拖拽式快速自定义构建表单,组建元素丰富,有富文本、上传控件、下拉框等等
    10
    . 性能监控:监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等

    11
    . 图片管理:对批量上传的图片统一管理 ,点击放大,可打开多个,自由切换,绚丽预览效果
    12
    . 图片爬虫:输入某网址,爬出其图片显示在页面上,可以放大预览。可保存到服务器上,到图片管理里面
    13
    . 系统设置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,微信配置

    14
    .
    数据库备份
    :可备份单表、整库,支持本地和远程数据库备份
    15
    . 备份定时器:quartz 2.2 强大的任务调度,多线程备份数据库,任务启动关闭异步操作
    16
    . 数据库还原
    :历史备份记录,还原数据库 or 单表 ,统计备份时间和文件大小

    17
    . SQL编辑器:强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel
    18
    . 访问记录:记录每个IP访问的时间,来源地区,网络运营商,统计每个IP的访问次数和详细时间
    19
    . IP黑名单:被拉入黑名单的IP禁止访问网站前台

    20
    . 流量统计:pv点击量和独立IP访客访问统计,折线图、柱状图、饼状图(地区统计)








    模版1


    模版2


    模版3




    【手机平板效果】

    【后台界面】


    展开全文
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
  • TeamTalk源码分析(十一) —— pc客户端源码分析

    万次阅读 热门讨论 2017-07-05 16:03:45
    3. httpclient功能是程序中使用的http请求库,登录前程序会先连接服务器的login_server以获得后续需要登录的msg_server的ip地址和端口号 等信息,这里就是使用的http协议,同时聊天过程中收发的聊天图片与图片服务器...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...
  • android安卓源码海量项目合集打包-1

    万次阅读 多人点赞 2019-06-11 16:16:24
    下载地址 最后更新共计113个分类5177套源码29.2 GB。 卷 新加卷 的文件夹 PATH 列表 卷序列号为 00000200 5E7A:7F30 F:. ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签的灵活运用.rar │...
  • C#部分源码

    千次阅读 2018-06-17 10:25:33
    C Sharp 短信发送平台源代码.rar http://1000eb.com/5c6vASP.NET+AJAX基础示例 视频教程 http://1000eb.com/89jcC# Winform qq弹窗 360弹窗 http://1000eb.com/89jf精华志 C#高级编程(第七版)源码 ...
  • C#源码500份

    千次阅读 2013-04-27 11:51:34
    C Sharp 短信发送平台源代码.rar http://1000eb.com/5c6v ASP.NET+AJAX基础示例 视频教程 http://1000eb.com/89jc ... 精华志 C#高级编程(第七版)源码 http://1000eb.com/89k3 C#网络应用编程教案及代码.rar h
  • 本文主要介绍Java微信公众号、微信小程序、微信网页 支付和提现相关的开发流程,同时附带源码和注释,方便读者学习。
  • Kong源码导读

    千次阅读 2018-07-31 10:34:41
    概览   kong是一个基于nginx和OpenResty模块构建的API网关服务。...  nginx是一个采用异步I/O,事件驱动的高性能Web服务器,也可以作为在企业内部提供基于http rpc的反向代理和负载均衡器。由于nginx的配置都是...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
  • 一步一步建立10万IP电影网站

    千次阅读 2013-03-09 22:01:36
    一步一步建立10万IP电影网站 版本号 修改内容 作者 修订时间 V1.0 初始化文档内容 www.vanto.cc 小优 2012-12-10 ...
  • 文章太长,接上一篇。 │ Android应用源码之HTMLViewer.zip │ Android应用源码之http 演示Demo.zip │ Android应用源码之http.zip │ Android应用源码之http1.zip │ Android应用源码之IA...
  • InstallShield打包源码公布

    千次阅读 2018-01-31 11:39:17
    InstallShield打包源码公布包含重量级别的内容。 Setup.rul 内容 #include "ifx.h" #include "global.h" BOOL gb_ShowCheckPort; prototype ExFn_UFWelcome(HWND); prototype ExFn_UFDetector(HWND)...
  • Android源码介绍编译

    千次阅读 2017-05-10 14:12:04
    Android源码介绍编译AOSP Android Open Source ProjectAndroid是一种为各种不同外形设备而开发的开源软件栈。 Android的主要目的是为运营商,OEM和开发人员创建一个开放的软件平台,使他们的创新理念成为现实,并...
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    3、 源码分析之前,需要认真学习一下Jade的Android的编程(有聊天程序源码下载,都在下载包中),编译源码,需要到google 中申请 map api 的key,不过由于神奇的国度制约的原因,申请连接的网站无法访问,需要通过...
  • delphi串行通信源码教程

    千次阅读 2013-03-30 21:14:20
    资料2.Delphi串口通信源码(总共242个源码,大小:151MB) 资料3.Delphi串口通信技术文章(总共54篇文章,大小:4.76MB) 资料4.Delphi串口通信技术书籍(总共10本书籍,大小:142MB) 资料5.Delphi串口通信视频...
  • 手机作为服务端,电脑使用MFC编程作为客户端,原理是,手机建立一个ServerSocket,并获取自己的ip地址和端口port;然后电脑通过socket连接手机的ip:port。熟悉c++的人可以测试。   9、Android之Wifi学习教程 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,984
精华内容 5,993
关键字:

企业记录ip地址网站源码