日期:2014-05-20  浏览次数:20664 次

Java Socket -> 求高手
现在有一台服务器是双网卡。与第三方服务器建立连接的时候需要指定一下本地的IP。
Java code

Socket(String host, int port, InetAddress localAddr, int localPort) 
       //   Creates a socket and connects it to the specified remote host on the specified remote port.


本来应该是使用上面这个构造函数来创建一个Socket对象的。
但是由于是使用的第三方库(Smack),创建Socket的时候是自动选择的本机IP,所以这里不符合我的要求,我根据文档、源码、配置都没有查找到可以快速修改的方法(只有修改源码)。

想请高手指导一下:我希望尽量在其它方面扩展一下来完成这个功能。
我现在有一个方案是:实现SocketImplFactory,里面自己创建一个SocketImpl然后完成绑定。当我正要做的时候去查看相关实现的源码,居然访问权限全是default,我悲剧啊。

我这里有一个类库:jsocks,没有用过不知道有什么用处。求高手。

http://topic.csdn.net/u/20110924/12/e900b291-8431-4166-85e5-5f2409d46ea2.html

------解决方案--------------------
置顶~
------解决方案--------------------
试试看设置一下路由,把一个网卡IP设置成缺省的网关,另一个网卡通过该网关通信
------解决方案--------------------
反编译代码试试,看能不能再加一个构造函数,包含一个可以指定IP的参数。