都说QQ是用UDP为主的,但两台上网的计算机,一台直接拨号,别一台是在一个局域网内用代理服务器上的网.那通过代理服务器上网的计算机只能得到代理服务器的IP,两台之间如何才能通讯啊?小弟实在无术,还教高手大方赐教!高分相送

解决方案 »

  1.   

    其实只要大家都登陆同一个服务器,那就比较好办了,MSN和QQ都是用类似的办法。
      

  2.   

    就当两天台上同一台服务器,那也一个样啊,我的服务器还是只能得到代理服务的IP地址却得不到它在局域网中的地址,如果用TCP/IP是可以用Connection直接建立通路的,便UDP好像有点困难啊!
      

  3.   

    是啊!就是UDP通过代理传输的问题,好想知道啊!
      

  4.   

    在有internet地址的机器上做一个server端,客户端从xx端口想server端发送数据,server段受到数据的ip和端口就是客户端所映射(NAT)的ip和端口。Server向这个ip和端口发送数据客户端就能收到了。
    例如:server:202.99.99.99:4545
          Client:192.168.0.33:4545
          Client从LocalPort4545向server4545发送数据  server受到的数据包所带的ip和port信息是203.98.98.98:54444则表示 Client的4545在经过NAT所对应internet地址和Port是203.98.98.98和54444
    服务端向203.98.98.98:54444发送数据客户端就可以收到了!
      

  5.   

    不用控件,直接用winsock2.0吧,效率可以做的很高的
      

  6.   

    不太明白!
    to tong_jin(tj): 也就是说直接用读取来得ip port就行了,不用手工转换设置什么了?to shadowfish(0℃): 我这样做对吗?procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
    var
      s: String;
    begin
      s := 'I have received it!!';
      ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
    end;可是这样和普通的操作没什么区别呀?到底什么是NAT,具体如何实现和应用呢?