• 发货源资源网

    [质量:5|效率:5|态度:5 ]

  • 当前位置:首页 > 源码集市 > 聊天计数 >
    收藏商品 分享到:
    举报
    C#编写的基于TCP通信的IMV3源码
    • 语  言:
    • C#
    • 数 据 库:
    • SQL2005
    • 品  牌:
    • WinForm
    • 最后更新:
    • 2015-03-05 08:03:13
    • 大  小:
    • 16.05MB MB
    • 演示网站:
    • 安装服务:
    • 免技术支持

      自动发货商品,随时可以购买,零等待。

      购买本商品,交易成功后可获赠积分。

      担保交易,有问题不解决24小时内可申请退款,安全保证。

    商品详情 交易评价 交易规则

    发货源资源网

    • 16Aspx源码必读.txt[5.47KB]
    • from.gif[2.69KB]
    • 最新Asp.Net源码下载.url[0.17KB]

    我们知道在网络通信中,如果所有的通信都通过服务器转发,会增加服务器的负担,如果实现了P2P,客户端之间直接通讯,比如聊天或者传送文件时不再通过服务器,而是客户端之间直接通信,将会有效的减轻服务器的负担,提高程序的效率。

    本节相关的P2P,指的是通过TCP协议,在局域网中实现的P2P,广域网中的P2P暂时没有涉及。

    本Demo基于来自英国的networkComms2.3.1开源通信框架

    工作原理-通过服务器,在客户端之间建立P2P通道,之后客户端之间的通讯可以脱离服务器

    流程如下:

    NetworkComms通信框架的内在通信机制,使得我们实现P2P通信非常的简单。

    (1):服务器开始监听

     (2)  :客户端,开始连接服务器,然后也开始监听工作,其实成为一个服务器。连接的过程中,系统会给客户端随机分派一个端口,以便完成与服务器的通信。连接完成后,我们获取到客户端的IP和与服务器通信的端口,客户端在此端口上展开监听,也就是说每个客户端都会展开监听,具备作为服务器的所有特质。

       模拟代码:      

              ConnectionInfo connInfo = new ConnectionInfo("服务器IP", "服务器端口");
              //客户端与服务器进行连接
              Connection     newTcpConnection = TCPConnection.GetConnection(connInfo);
              //客户端与服务器连接成功后,开始监听本地端口,客户端也称为可以监听的服务器
              TCPConnection.StartListening(connInfo.LocalEndPoint);

    (3):每个客户端需要维护一个“P2P通信的连接”表

       我们用一个静态类来实现,具体可查看Common类
     //字典中存储 用户ID 和相应的连接引用

    public static Dictionary UserConnList = new Dictionary();


    相关操作方法
     

    (4):客户端成功登陆后,从服务器获取所有在线其他客户端用户的本地端点(IP和端口)(即在其他客户端在步骤一中展开监听的端点),并进行连接

        《1》客户端甲与其他客户端逐个进行连接,连接成功后,客户端甲添加对方用户ID和连接引用到本地P2P通道字典中

       《2》客户端甲发送一个消息类型为”setupP2PMessage"的消息,给对方,以便于对方添加相应的记录到对方的P2P字典中

       《3》客户端甲与其他用户进行连接时,客户端甲为“客户端”,其他的客户端为“服务器端”,所以在P2P通道的2端,总有一端为“客户端”,另一端为“服务器”。

              配合NetworkComms通信框架,此种概念上的区分,并不影响P2P通道的通信。

             客户端甲与其他客户端通信时,无论是作为”客户端“或者”服务器“均可,只要与对方存在TCP长连接即可。

         《4》 这种由客户端之间彼此通信而建成的”服务器“,具备真正服务器的所有功能,会进行相应的”心跳检测“与”连接“维护等。

          下面的代码:某客户端登陆后,获取所有已在线用户,并与之连接,连接完成后,发送”SetupP2PMessag"类型消息给对方。通过此过程,彼此双方的“P2P连接”都会建立完成。
     


    上面的代码中,我们把相关的P2P通道建立消息写入程序文件夹下“P2PINFO.txt文件”,以便于观察P2P消息通道的建立。和通过P2P通道发送消息

     (5):通过P2P通道发送消息

       客户端发送消息时,查看是否与对方存在 P2P通道,如果存在通过P2P连接发送消息,否则通过服务器发送

      举例说明,发送聊天消息时,先查看是否有 p2p 通道
     

    (6)P2P通道的注销

       当某个客户端掉线后,我们要把其从其他相应客户端的P2P通道注销掉。

       方法:服务器通过心跳检测,知道某连接掉线后,发送消息给其他所有客户端。

     

    交易评价
      (0)
      <

      1/5

      >
    交易规则
    • 交易流程
    • 发货方式
    • 1、自动:在上方保障服务中标有自动发货的商品,拍下后,将会自动收到来自卖家的商品获取(下载)链接;

      2、手动:未标有自动发货的的商品,拍下后,卖家会收到邮件、短信提醒,也可通过QQ或订单中的电话联系对方。

    • 退款说明
    • 1、描述:源码描述(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、版本不符等);

      2、演示:有演示站时,与实际源码小于95%一致的(但描述中有"不保证完全一样、有变化的可能性"类似显著声明的除外);

      3、发货:手动发货源码,在卖家未发货前,已申请退款的;

      4、服务:卖家不提供安装服务或需额外收费的(但描述中有显著声明的除外);

      5、其他:如质量方面的硬性常规问题等。

      注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法对描述进行修改!

    • 注意事项
    • 1、在未拍下前,双方在QQ上所商定的内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准);

      2、在商品同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外);

      3、在没有"无任何正当退款依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

      4、虽然交易产生纠纷的几率很小,但请尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于16Aspx源码介入快速处理。

    • 16Aspx源码声明
    • 1、16Aspx源码作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

      2、非平台线上交易的项目,出现任何后果均与16Aspx源码无关;无论卖家以何理由要求线下交易的,请联系管理举报。

  • 宝贝数量:7433
  • 创店时间:2017/5/26 16:11:00
  • 联系客服

    330199865

    店内搜索
  • 商品:
  • 价格: -
  • 本店销量榜

    1微信公众平台Bee.WeiXin开发源码

    2BS拖拽工作流设计及研发源码

    3通用权限管理系统(含文档、数据库)源码

    4Easyui之权限系统源码

    5ASP.NETMVC+EF框架+EasyUI实现权限管理源码

    6通用OA系统增强源码

    7Entity Framework4.1+MVC3+Jquery EasyUI的DEMO源码

    8基于FineUI的通用权限管理框架源码

    9WPF仿迅雷7界面UI效果

    10WEB在线流程图设计器GOOFLOW源码

    广而告之