⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicastmessagereceiver.java

📁 提供ESB 应用mule源代码 提供ESB 应用mule源代码
💻 JAVA
字号:
/* * $Id: MulticastMessageReceiver.java 11079 2008-02-27 15:52:01Z tcarlson $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.transport.multicast;import org.mule.api.endpoint.InboundEndpoint;import org.mule.api.lifecycle.CreateException;import org.mule.api.service.Service;import org.mule.transport.AbstractConnector;import org.mule.transport.udp.UdpMessageReceiver;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.MulticastSocket;import java.net.URI;import javax.resource.spi.work.Work;public class MulticastMessageReceiver extends UdpMessageReceiver{    public MulticastMessageReceiver(AbstractConnector connector, Service service, InboundEndpoint endpoint)            throws CreateException    {        super(connector, service, endpoint);    }    protected DatagramSocket createSocket(URI uri, InetAddress inetAddress) throws IOException    {        MulticastSocket socket = new MulticastSocket(uri.getPort());        socket.joinGroup(inetAddress);        return socket;    }    protected Work createWork(DatagramPacket packet) throws IOException    {        return new MulticastWorker(packet);    }    public class MulticastWorker extends UdpWorker    {        public MulticastWorker(DatagramPacket packet)        {            super(socket, packet);        }        public void dispose()        {            // Do not close socket as we reuse it            // So do not call super.doDispose();        }    }    protected void doDispose()    {        if (socket != null && !socket.isClosed())        {            try            {                ((MulticastSocket) socket).leaveGroup(inetAddress);            }            catch (IOException e)            {                logger.error("failed to leave group: " + e.getMessage(), e);            }        }        super.doDispose();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -