我们公司是采用局域网方式上网,自动分配IP地址。
OICQ之类的软件可以正常使用,也可以和其他使用局域网上网的用户聊天,
可是如果要自己写类似的聊天程序,但是不借助服务器,那么该如何建立
连接?(假设双方彼此知道上网服务器的IP地址和局域网内的用户名)。一句话就是两个不同的具域网怎么连接?

解决方案 »

  1.   

    SERVERSOCKET和CLIENTSOCKET
    应该可以吧!
      

  2.   

    hety(笨菜阿诺德)怎么实现?能这么容易吗,两个可都是内部网,
    一个是61。***.***.**下的192.168.10.2
    一个是100.***.***.**下的192.168.0.2
    那你告诉我怎么设置吧!
      

  3.   

    这个问题早就讨论过了,不用server完全不可能
      

  4.   

    的确不用server是根本做不到的。不具备建立连接的条件。
      

  5.   

    如果是借助server呢,怎么实现?也就是server怎么和具域网内部的机器通信呢?
      

  6.   

    server当然要有真IP了,不然还不是没法在不同的局域网内访问了。
      

  7.   

    QQ de shi xian yuanli!?
      

  8.   

    假如服务器的IP202.**。**。**
    公司公网IOP61.**.**.**,局域网IP192.168.10.2
    服务器怎么和局域网通信呢?就是网吧里的机器上的QQ怎么和滕讯的服务器通讯呢!
    可能是我的表达能力太差!
      

  9.   

    是这样的
    在同一网段中
    每一应用程序都占用一个端口
    这样 在 你的通讯程序中指定 host:=服务器的IP
    就行了!
    试试吧!
      

  10.   

    Study,但是我想用Socket肯定可以作。同一个网段内寻址没有问题,不过要是不同的网段,如你所说的两个不同的但又互连的局域网间的通信,寻址是关键问题。我想能不能这样:   用局域网服务器转发。 服务器为ServerSocket端,其它的客户都用ClientSocket 写过。 每个Client端Socket包中都带两个地址,服务器地址和对方的ip,然后由服务器收到后读取、转发 可以这样做吗?
      

  11.   

    我对网络不是很懂,说点我的看法,不对的请指正。局域网中的机器只能主动连接服务器,因为服务器可以被找得到,找到后就可以建立一个连接,这样子局域网中的机器就可以跟服务器进行通信了,这是有连接的情况下(使用TCP/IP协议),如果是使用无连接的协议(如UDP),局域网内恐怕需要安装相关的代理软件(什么样的代理?不清楚,但听说QQ使用的就是UDP协议,既然QQ可以在局域网与服务器通信,应该就是有什么代理可以实现这个功能:使局域网内的机器与外部机器可以通过无连接的协议进行通信),总的来说,两台如果两台机器使用面向连接的协议通信的话,至少必须有一台有真IP,而且只能由没有真IP的机器主动连接该机器,要是有两台没有真IP的机器(不在同一局域网内)通信,就都必须连接到一台有真IP的机器上,由该机器进行数据中转,来实现那两台机器的通信。如果是使用无连接的协议,我就不太清楚了,应该在局域网内设置了什么代理软件后就可以使用了吧。希望高手指正其中错误的地方。
      

  12.   

    通常服务器的IP是唯一的物理IP,而LAN 内的所有应用程序都占用不同的端口
    所以,在不同的网段中进行通讯时只要指定服务器的IP(物理IP)就行了,而不能指定该网内的IP 端口指定到要好好考虑!
      

  13.   

    假如用UDP控件连接,我该怎么设置呢?
      

  14.   

    UDP中只要端口好指定好
    在一端指定服务器IP就行了
      

  15.   

    当一个处在局域网内,没有真正IP的机子通过网关上QQ时,在internet上与它通讯的另一个QQ发送数据包给它时,数据包是如何通过网关到达该没有真正IP的机子的?
    都去吃饭去了吗?
      

  16.   

    ni zen me che shi!
    duan kou!
      

  17.   

    fa guo lai
    [email protected]
      

  18.   


    我们公司是采用局域网方式上网,自动分配IP地址。
    OICQ之类的软件可以正常使用,也可以和其他使用局域网上网的用户聊天,
    可是如果要自己写类似的聊天程序,但是不借助服务器,那么该如何建立
    连接?(假设双方彼此知道上网服务器的IP地址和局域网内的用户名)。=========================================================
    假设双方彼此知道上网服务器的IP地址(局域网内)和局域网内的用户名如果这样的话,你直接连对方就行,前提是你设了对方服务器作你的网关,
    如果你想写QQ那样在广域网上运行的,前提是你必须有固定IP作服务器
      

  19.   

    还有,不管你用UDP还是TCP都是一样的,UDP只是在发送时连接(也可以先连接),而且不保证不丢失(局域网内丢包机率很小),TCP要先建立连接,但它能保证不丢包(机率很小很小),所以理论上UDP比TCP效率高,像聊天工具用UDP会好一些,因为它不是重要的数据,丢一个两个没关系
      

  20.   

    这应该是和路由器有关的问题:两个不同子网的主机进行连接,必须经过中转,用专门的路由器或Windows2000Server自带的路由器功能可以实现。至于Delphi中有没有控件可以实现这个功能我也不知道,但我知道用ServerSocket和ClientSocket应该没办法实现。
    这是我的愚见,谨供参考!
      

  21.   

    不一定,p2p的也应该没有服务器,却可以。去查查有没有p2p的原码