android真机,Socket不能3G连接外网(内网测试没有关问题),为什么?

android真机,Socket不能3G连接外网(内网测试没问题),为什么???
android真机(联通,电信都试过),Socket不能3G连接外网(内网测试没问题),为什么???

android代码部分已经声明了所有需要的权限(完全的网络服务),

外网服务器用MFC写,android真机通过3G连接服务器时,服务器端的OnAccept()被触发,
同时手机端显示连接错误信息(connection timeout,我把手机端的socket.connect超时时间设为足够长,
但每次都是还没到时间只要服务端的OnAccept()被触发,手机就立马显示timeout),然后连接失败,
没下文了,但是服务端定时发送心跳包时一直没有触发该客户socket的Socket_error(即使手机重启),

我在内网用wifi是完全没问题的,外网的端口映射经过测试也是没有问题的,那到底是什么原因导致连接不上timeout呢?
网络 外网 socket android 3G

------解决方案--------------------
要贴一下代码看看,我有个应用是要通过socket与外网建议连接,是正常的