在NMUDP的OnDataReceived事件中接收到客户端发送来的数据时,发现对方的Port已不是当初设置的值。客户端设置了LocalPort为某个固定值。同样的程序改一下IP在同一台机上运行则是正常的。为什么客户端通过代理出去后Port会变化呢?

解决方案 »

  1.   

    主要是服务端有防火墙,想只开放某几个固定的端口,有多个客户端通过代理出去后,每个客户端的LocalPort端口都不同,防火墙没办法设置。有什么好的方法可以实现?
      

  2.   

    内网程序的数据包IP和端口通过网关或代理后,会被网关或代理更改为网关的IP和新的端口,这个IP和端口在网关上与内网的电脑的IP和端口对应,在数据返回时将通过这个对应关系返回给内网的电脑。
    想要解决这个问题,可在网关或代理上设置端口映射到内网某个机器的端口。