java multicastsocket_Java MulticastSocket.setInterface方法代码示例

import java.net.MulticastSocket; //导入方法依赖的package包/类

/**

* start the discovery agent

*

* @throws Exception

*/

public void start() throws Exception {

if (started.compareAndSet(false, true)) {

if (group == null || group.length() == 0) {

throw new IOException("You must specify a group to discover");

}

String type = getType();

if (!type.endsWith(".")) {

LOG.warn("The type '" + type + "' should end with '.' to be a valid Discovery type");

type += ".";

}

if (discoveryURI == null) {

discoveryURI = new URI(DEFAULT_DISCOVERY_URI_STRING);

}

if (LOG.isTraceEnabled())

LOG.trace("start - discoveryURI = " + discoveryURI);

String myHost = discoveryURI.getHost();

int myPort = discoveryURI.getPort();

if( DEFAULT_HOST_STR.equals(myHost) )

myHost = DEFAULT_HOST_IP;

if(myPort < 0 )

myPort = DEFAULT_PORT;

if (LOG.isTraceEnabled()) {

LOG.trace("start - myHost = " + myHost);

LOG.trace("start - myPort = " + myPort);

LOG.trace("start - group = " + group );

LOG.trace("start - interface = " + mcInterface );

LOG.trace("start - network interface = " + mcNetworkInterface );

LOG.trace("start - join network interface = " + mcJoinNetworkInterface );

}

this.inetAddress = InetAddress.getByName(myHost);

this.sockAddress = new InetSocketAddress(this.inetAddress, myPort);

mcast = new MulticastSocket(myPort);

mcast.setLoopbackMode(loopBackMode);

mcast.setTimeToLive(getTimeToLive());

if (mcJoinNetworkInterface != null) {

mcast.joinGroup(sockAddress, NetworkInterface.getByName(mcJoinNetworkInterface));

}

else {

mcast.joinGroup(inetAddress);

}

mcast.setSoTimeout((int)keepAliveInterval);

if (mcInterface != null) {

mcast.setInterface(InetAddress.getByName(mcInterface));

}

if (mcNetworkInterface != null) {

mcast.setNetworkInterface(NetworkInterface.getByName(mcNetworkInterface));

}

runner = new Thread(this);

runner.setName(this.toString() + ":" + runner.getName());

runner.setDaemon(true);

runner.start();

doAdvertizeSelf();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值