现在有一台服务器是双网卡。与第三方服务器建立连接的时候需要指定一下本地的IP。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
// 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
我很不解。Socket socket = new Socket()每次像上面创建对象的时候,默认的IP都是一样的,不会改变。PS:服务器上面不止有两块网卡。下面的网卡信息。<!--
connectora:/home/connector/server/test # ifconfig
bond0 Link encap:Ethernet HWaddr 78:1D:BA:56:98:66
inet addr:192.168.1.169 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:36674976 errors:0 dropped:11471188 overruns:0 frame:173096
TX packets:1396995 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3403987191 (3246.2 Mb) TX bytes:457241559 (436.0 Mb)bond1 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
inet addr:10.237.104.214 Bcast:10.237.104.255 Mask:255.255.255.192
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:1775695 errors:0 dropped:0 overruns:0 frame:0
TX packets:209903 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:194990208 (185.9 Mb) TX bytes:25850386 (24.6 Mb)bond1:0 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
inet addr:10.237.104.197 Bcast:10.237.104.255 Mask:255.255.255.192
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1bond1:1 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
inet addr:10.237.104.196 Bcast:10.237.104.255 Mask:255.255.255.192
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1eth0 Link encap:Ethernet HWaddr 28:6E:D4:F8:20:88
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:169eth1 Link encap:Ethernet HWaddr 28:6E:D4:F8:20:89
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:58eth2 Link encap:Ethernet HWaddr 28:6E:D4:F8:20:54
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:58eth3 Link encap:Ethernet HWaddr 28:6E:D4:F8:20:55
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:66eth4 Link encap:Ethernet HWaddr 28:6E:D4:F8:1F:D6
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:74eth5 Link encap:Ethernet HWaddr 28:6E:D4:F8:1F:D7
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:169eth6 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
UP BROADCAST RUNNING ALLMULTI SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1753519 errors:0 dropped:0 overruns:0 frame:0
TX packets:209900 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:193570944 (184.6 Mb) TX bytes:25850192 (24.6 Mb)
Interrupt:66eth7 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:22176 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1419264 (1.3 Mb) TX bytes:194 (194.0 b)
Interrupt:74eth8 Link encap:Ethernet HWaddr 78:1D:BA:56:98:66
UP BROADCAST RUNNING ALLMULTI SLAVE MULTICAST MTU:1500 Metric:1
RX packets:24850346 errors:0 dropped:7357107 overruns:0 frame:124139
TX packets:1396992 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2383053419 (2272.6 Mb) TX bytes:457241365 (436.0 Mb)
Interrupt:169eth9 Link encap:Ethernet HWaddr 78:1D:BA:56:98:66
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:11824630 errors:0 dropped:4114081 overruns:0 frame:48957
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1020933772 (973.6 Mb) TX bytes:194 (194.0 b)
Interrupt:58eth10 Link encap:Ethernet HWaddr 78:1D:BA:56:98:65
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:768981 errors:0 dropped:0 overruns:0 frame:0
TX packets:801085 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:62690006 (59.7 Mb) TX bytes:75686408 (72.1 Mb)
Interrupt:169lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:589753 errors:0 dropped:0 overruns:0 frame:0
TX packets:589753 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:46302115 (44.1 Mb) TX bytes:46302115 (44.1 Mb)
-->
inet addr:192.168.1.169 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:36674976 errors:0 dropped:11471188 overruns:0 frame:173096
TX packets:1396995 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3403987191 (3246.2 Mb) TX bytes:457241559 (436.0 Mb)bond1 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
inet addr:10.237.104.214 Bcast:10.237.104.255 Mask:255.255.255.192
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:1775695 errors:0 dropped:0 overruns:0 frame:0
TX packets:209903 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:194990208 (185.9 Mb) TX bytes:25850386 (24.6 Mb)bond1:0 Link encap:Ethernet HWaddr 78:1D:BA:56:98:68
inet addr:10.237.104.197 Bcast:10.237.104.255 Mask:255.255.255.192
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1我现在想要创建Socket的时候默认选择绑定[10.237.104.197]这个虚拟IP。目前默认的选择是[10.237.104.214]这个IP,如果我不修改代码手动添加绑定,有什么办法可以默认修改,让Socket在创建的时候就默认去选择197这个ip。