只仅是个定时器就够了(js),每隔一段时间把自己的信息放松上去,并且在把服务器上的信息都下来,记住要用js和服务器(显示页面为静态html,用js提交给.aspx也面,让他和服务器联系)打交道,不然网页会频繁刷新。

解决方案 »

  1.   

    真的就没有Server向client发信息的方法了吗?那样就可以有更新才触发,否则就不动呀!
      

  2.   

    to   Soking(方呈怡心) 就算装一个客户端吧,可是“用户A”通过自动路由MODEM登录到Server,(它当前的外IP:218.11.12.75,内IP:192.168.1.53)。Server怎么才能把信息传达到“用户A”?
      

  3.   

    就算在客户加一个监听,关键是Server怎么把信息从外网传到内网
      

  4.   

    QQ是使用了代理机制,和你所说的不同。你的b/s结构系统肯定是需要客户定时或不断向server获取数据的。这是基本原理,但想提高服务器性能,你可以在些原理上做一些优化如果你用c/s结构的话。服务器可以侦听每个连接并获得一个地址列表,再向各个地址广播在线用记。这和自动路由无关啊。不知道我这算不算不懂装懂.
      

  5.   

    to myhex(小乙)就用c/s结构吧,如用户A它当前的外IP:218.11.12.75,内IP:192.168.1.53,服务器侦听用户A的连接并获得这个地址,再向这个地址广播在线用记,这段代码怎么写?就是服务器侦听用户A的连接并获得这个地址,再向它广播信息,这个过程的代码怎么写?
      

  6.   

    服务器向内网客户端发信息的代码怎么写?
    1、用户A通过自动路由MODEM登录到Server它当前的外IP:218.11.12.75,内IP:192.168.1.53
    2、服务器侦听用户A的连接并获得这个地址,再向这个地址广播方式发送信息!以上流程在用户端与服务器端的代码分别应该怎么写?就是服务器侦听用户A的连接并获得这个地址,再向它广播信息,这个过程的代码怎么写?听说QQ是使用了代理机制来实现的,哪个老大能说详细一些?
      

  7.   

    用TcpClient或者UdpClient
    看看MSDN吧,很简单的说
      

  8.   

    你可以参考一下chatroom的程序。
      

  9.   

    我看了TcpClient和UdpClient它是用IP+端口来向有听贞端发关请求连接!当用户A向服务器发出请求是可以,因为服务器有固定IP,反过来如先向服务器向用户发信息怎么发,因为用户的IP有内IP和外IP呀?  我知道用户A向服务器发出请求后就可以与服务器建联接,建联接后服务器就可以向用户A返回信息,可是我们不让这个联系一直连着!那样有多小用户上线就有多少个连接一直与服务器连着,那不可能吧?
      我的意思是一个用户上线就把地址报给服务器然后断开连接,有另一个用户上线也一样,这时服务器就向已上线的用户传这个用户的信息。这时服务器怎么来与有内外IP的用户建立连接?
      

  10.   

    关于代理socks5,你可以参考RFC 1928,你说的情况用socks5代理能很好的解决,但.net对代理的支持是什么样的,我不太了解,不好意思。如果你说的情况是。用户既有内网IP,又有外网IP,若服务器只需维护一个在线列表,而不需要在各用户间维护一个通道的话。非常简单,用UDP协议可以很好的实现,而且不用担心存在必须维护多个连间的问题。由于服务器地址是固定的,所以,用户在登录时,向服务器发送UDP报文,服务器接受到后,在客户列表中对应地增加一个客户,并记录下客户IP,同时,向客户发送报文,报文中包含当前所有在线客户信息。服务器和客户间不需建立持续连接便可实现这一要求,甚至能实现不可靠的数据中转。如果要实现TCP连接,最上面提到的用Socks代理是最佳的解决办法。你的问题描述我总觉得不太清晰,而且越说越让我糊涂了。
      

  11.   

    谢谢  myhex(小乙) 用UDP协议 可以向网的用户发送信息吗?所谓内网就是只有通过自动路由MODEM和内IP才能访问到它
      

  12.   

    用户A:通过自动路由MODEM上网,它当前的外IP:218.11.12.75,内IP:192.168.1.53。
    用户B:通过自动路由MODEM上网,它当前的外IP:218.11.125.5,内IP:192.168.11.9。请上面的用户B和用户A怎么建立通信?如QQ那样的点对点发信息?
    socks5、Remoting、TcpClient和UdpClient等建立联接都是IP+端口,可是用户B和用户A都要通过内外IP才能连接!这个问题怎么解决?
      

  13.   

    我不知道你说的用户A和B是直接连上外网还是通过内网防火墙连上外网的。而且也不知道你所说的用户A和用户B是不是属于同一内网。如果是直接连上网,每次用户在初始时向服务器发送上线的消息,既可以是TCP的,也可以是基于UDP的。服务器只需要维护一个在线用户表,每次用户可以请求获得这个在线表,表内包含了各用户的IP信息。然后用户就可以与其它用户直接通信了(因为己经获得了对方IP)。如果是通过内网防火墙,也就是己经通过socks代理方式连上外网了。其实也可以象直接连上外网一样处理,不过连接程序必须支持socks代理,较麻烦
      

  14.   

    MSDN就有这样的例子,你参考下了。反正你服务器是有一个固定的IP,用socket作一个服务和客户端小程序,客户端发送IP到该服务端,然后接受到该消息后,可以广播地址给所有的联网机器发一信息或者你直接就给这个IP地址发送信息。随你了呵呵。你这边的客户机再接受了
      

  15.   

    用户B没有办法直接向用户A传递连接请求,因为用户A处于局网内,不过你的服务器有固定IP,你可以让用户B首先向服务器发送连接请求,服务器获得用户B的socks请求对象后,把这个对象传递给用户A,用户A用此对象与用户B建立连接,这样就可以形成QQ那样的点点通