当前位置: 首页>>代码示例>>Java>>正文


Java Bytestream.addStreamHost方法代码示例

本文整理汇总了Java中org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.addStreamHost方法的典型用法代码示例。如果您正苦于以下问题:Java Bytestream.addStreamHost方法的具体用法?Java Bytestream.addStreamHost怎么用?Java Bytestream.addStreamHost使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream的用法示例。


在下文中一共展示了Bytestream.addStreamHost方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testRespondWithErrorOnSocks5BytestreamRequest

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Target should respond with not-acceptable error if no listeners for incoming Socks5
 * bytestream requests are registered.
 * 
 * @throws XMPPException should not happen
 */
public void testRespondWithErrorOnSocks5BytestreamRequest() throws XMPPException {
    XMPPConnection targetConnection = getConnection(0);

    XMPPConnection initiatorConnection = getConnection(1);

    Bytestream bytestreamInitiation = Socks5PacketUtils.createBytestreamInitiation(
                    initiatorConnection.getUser(), targetConnection.getUser(), "session_id");
    bytestreamInitiation.addStreamHost("proxy.localhost", "127.0.0.1", 7777);

    PacketCollector collector = initiatorConnection.createPacketCollector(new PacketIDFilter(
                    bytestreamInitiation.getStanzaId()));
    initiatorConnection.sendStanza(bytestreamInitiation);
    Packet result = collector.nextResult();

    assertNotNull(result.getError());
    assertEquals(XMPPError.Condition.no_acceptable.toString(), result.getError().getCondition());

}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:25,代码来源:Socks5ByteStreamTest.java

示例2: testRespondWithErrorOnSocks5BytestreamRequest

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Target should respond with not-acceptable error if no listeners for incoming Socks5
 * bytestream requests are registered.
 * 
 * @throws XMPPException should not happen
 */
public void testRespondWithErrorOnSocks5BytestreamRequest() throws XMPPException {
    Connection targetConnection = getConnection(0);

    Connection initiatorConnection = getConnection(1);

    Bytestream bytestreamInitiation = Socks5PacketUtils.createBytestreamInitiation(
                    initiatorConnection.getUser(), targetConnection.getUser(), "session_id");
    bytestreamInitiation.addStreamHost("proxy.localhost", "127.0.0.1", 7777);

    PacketCollector collector = initiatorConnection.createPacketCollector(new PacketIDFilter(
                    bytestreamInitiation.getPacketID()));
    initiatorConnection.sendPacket(bytestreamInitiation);
    Packet result = collector.nextResult();

    assertNotNull(result.getError());
    assertEquals(XMPPError.Condition.no_acceptable.toString(), result.getError().getCondition());

}
 
开发者ID:bejayoharen,项目名称:java-bells,代码行数:25,代码来源:Socks5ByteStreamTest.java

示例3: createBytestreamInitiation

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Returns a SOCKS5 Bytestream initialization request stanza(/packet) with the given session ID
 * containing the given stream hosts for the given target JID.
 * 
 * @param sessionID the session ID for the SOCKS5 Bytestream
 * @param targetJID the target JID of SOCKS5 Bytestream request
 * @param streamHosts a list of SOCKS5 proxies the target should connect to
 * @return a SOCKS5 Bytestream initialization request packet
 */
private Bytestream createBytestreamInitiation(String sessionID, String targetJID,
                List<StreamHost> streamHosts) {
    Bytestream initiation = new Bytestream(sessionID);

    // add all stream hosts
    for (StreamHost streamHost : streamHosts) {
        initiation.addStreamHost(streamHost);
    }

    initiation.setType(IQ.Type.set);
    initiation.setTo(targetJID);

    return initiation;
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:24,代码来源:Socks5BytestreamManager.java

示例4: shouldFailIfRequestHasInvalidStreamHosts

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Accepting a SOCKS5 Bytestream request should fail if target is not able to connect to any of
 * the provided SOCKS5 proxies.
 * 
 * @throws Exception
 */
@Test
public void shouldFailIfRequestHasInvalidStreamHosts() throws Exception {

    try {

        // build SOCKS5 Bytestream initialization request
        Bytestream bytestreamInitialization = Socks5PacketUtils.createBytestreamInitiation(
                        initiatorJID, targetJID, sessionID);
        // add proxy that is not running
        bytestreamInitialization.addStreamHost(proxyJID, proxyAddress, 7778);

        // get SOCKS5 Bytestream manager for connection
        Socks5BytestreamManager byteStreamManager = Socks5BytestreamManager.getBytestreamManager(connection);

        // build SOCKS5 Bytestream request with the bytestream initialization
        Socks5BytestreamRequest byteStreamRequest = new Socks5BytestreamRequest(
                        byteStreamManager, bytestreamInitialization);

        // accept the stream (this is the call that is tested here)
        byteStreamRequest.accept();

        fail("exception should be thrown");
    }
    catch (XMPPErrorException e) {
        assertTrue(e.getMessage().contains("Could not establish socket with any provided host"));
    }

    // verify targets response
    assertEquals(1, protocol.getRequests().size());
    Stanza targetResponse = protocol.getRequests().remove(0);
    assertTrue(IQ.class.isInstance(targetResponse));
    assertEquals(initiatorJID, targetResponse.getTo());
    assertEquals(IQ.Type.error, ((IQ) targetResponse).getType());
    assertEquals(XMPPError.Condition.item_not_found,
                    ((IQ) targetResponse).getError().getCondition());

}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:44,代码来源:Socks5ByteStreamRequestTest.java

示例5: createBytestreamInitiation

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Returns a SOCKS5 Bytestream initialization request packet with the given session ID
 * containing the given stream hosts for the given target JID.
 * 
 * @param sessionID the session ID for the SOCKS5 Bytestream
 * @param targetJID the target JID of SOCKS5 Bytestream request
 * @param streamHosts a list of SOCKS5 proxies the target should connect to
 * @return a SOCKS5 Bytestream initialization request packet
 */
private Bytestream createBytestreamInitiation(String sessionID, String targetJID,
                List<StreamHost> streamHosts) {
    Bytestream initiation = new Bytestream(sessionID);

    // add all stream hosts
    for (StreamHost streamHost : streamHosts) {
        initiation.addStreamHost(streamHost);
    }

    initiation.setType(IQ.Type.SET);
    initiation.setTo(targetJID);

    return initiation;
}
 
开发者ID:ice-coffee,项目名称:EIM,代码行数:24,代码来源:Socks5BytestreamManager.java

示例6: createBytestreamInitiation

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Returns a SOCKS5 Bytestream initialization request packet with the given
 * session ID containing the given stream hosts for the given target JID.
 * 
 * @param sessionID
 *            the session ID for the SOCKS5 Bytestream
 * @param targetJID
 *            the target JID of SOCKS5 Bytestream request
 * @param streamHosts
 *            a list of SOCKS5 proxies the target should connect to
 * @return a SOCKS5 Bytestream initialization request packet
 */
private Bytestream createBytestreamInitiation(String sessionID,
		String targetJID, List<StreamHost> streamHosts) {
	Bytestream initiation = new Bytestream(sessionID);

	// add all stream hosts
	for (StreamHost streamHost : streamHosts) {
		initiation.addStreamHost(streamHost);
	}

	initiation.setType(IQ.Type.SET);
	initiation.setTo(targetJID);

	return initiation;
}
 
开发者ID:ikantech,项目名称:xmppsupport_v2,代码行数:27,代码来源:Socks5BytestreamManager.java

示例7: parse

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
@Override
public Bytestream parse(XmlPullParser parser, int initialDepth)
                throws XmlPullParserException, IOException {
    boolean done = false;

    Bytestream toReturn = new Bytestream();

    String id = parser.getAttributeValue("", "sid");
    String mode = parser.getAttributeValue("", "mode");

    // streamhost
    String JID = null;
    String host = null;
    String port = null;

    int eventType;
    String elementName;
    while (!done) {
        eventType = parser.next();
        elementName = parser.getName();
        if (eventType == XmlPullParser.START_TAG) {
            if (elementName.equals(Bytestream.StreamHost.ELEMENTNAME)) {
                JID = parser.getAttributeValue("", "jid");
                host = parser.getAttributeValue("", "host");
                port = parser.getAttributeValue("", "port");
            }
            else if (elementName.equals(Bytestream.StreamHostUsed.ELEMENTNAME)) {
                toReturn.setUsedHost(parser.getAttributeValue("", "jid"));
            }
            else if (elementName.equals(Bytestream.Activate.ELEMENTNAME)) {
                toReturn.setToActivate(parser.getAttributeValue("", "jid"));
            }
        }
        else if (eventType == XmlPullParser.END_TAG) {
            if (elementName.equals("streamhost")) {
                if (port == null) {
                    toReturn.addStreamHost(JID, host);
                }
                else {
                    toReturn.addStreamHost(JID, host, Integer.parseInt(port));
                }
                JID = null;
                host = null;
                port = null;
            }
            else if (elementName.equals("query")) {
                done = true;
            }
        }
    }

    if (mode == null) {
        toReturn.setMode(Mode.tcp);
    } else {
        toReturn.setMode((Bytestream.Mode.fromName(mode)));
    }
    toReturn.setSessionID(id);
    return toReturn;
}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:60,代码来源:BytestreamsProvider.java

示例8: shouldNotBlacklistInvalidProxy

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Target should not not blacklist any SOCKS5 proxies regardless of failing connections.
 * 
 * @throws Exception should not happen
 */
@Test
public void shouldNotBlacklistInvalidProxy() throws Exception {

    // disable blacklisting
    Socks5BytestreamRequest.setConnectFailureThreshold(0);

    // build SOCKS5 Bytestream initialization request
    Bytestream bytestreamInitialization = Socks5PacketUtils.createBytestreamInitiation(
                    initiatorJID, targetJID, sessionID);
    bytestreamInitialization.addStreamHost("invalid." + proxyJID, "127.0.0.2", 7778);

    // get SOCKS5 Bytestream manager for connection
    Socks5BytestreamManager byteStreamManager = Socks5BytestreamManager.getBytestreamManager(connection);

    // try to connect several times
    for (int i = 0; i < 10; i++) {
        try {
            // build SOCKS5 Bytestream request with the bytestream initialization
            Socks5BytestreamRequest byteStreamRequest = new Socks5BytestreamRequest(
                            byteStreamManager, bytestreamInitialization);

            // set timeouts
            byteStreamRequest.setTotalConnectTimeout(600);
            byteStreamRequest.setMinimumConnectTimeout(300);

            // accept the stream (this is the call that is tested here)
            byteStreamRequest.accept();

            fail("exception should be thrown");
        }
        catch (XMPPException e) {
            assertTrue(e.getMessage().contains(
                            "Could not establish socket with any provided host"));
        }

        // verify targets response
        assertEquals(1, protocol.getRequests().size());
        Stanza targetResponse = protocol.getRequests().remove(0);
        assertTrue(IQ.class.isInstance(targetResponse));
        assertEquals(initiatorJID, targetResponse.getTo());
        assertEquals(IQ.Type.error, ((IQ) targetResponse).getType());
        assertEquals(XMPPError.Condition.item_not_found,
                        ((IQ) targetResponse).getError().getCondition());
    }

    // enable blacklisting
    Socks5BytestreamRequest.setConnectFailureThreshold(2);

}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:55,代码来源:Socks5ByteStreamRequestTest.java

示例9: shouldNotTimeoutIfFirstSocks5ProxyDoesNotRespond

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * If the SOCKS5 Bytestream request contains multiple SOCKS5 proxies and the first one doesn't
 * respond, the connection attempt to this proxy should not consume the whole timeout for
 * connecting to the proxies.
 * 
 * @throws Exception should not happen
 */
@Test
public void shouldNotTimeoutIfFirstSocks5ProxyDoesNotRespond() throws Exception {

    // start a local SOCKS5 proxy
    Socks5TestProxy socks5Proxy = Socks5TestProxy.getProxy(7778);

    // create a fake SOCKS5 proxy that doesn't respond to a request
    ServerSocket serverSocket = new ServerSocket(7779);

    // build SOCKS5 Bytestream initialization request
    Bytestream bytestreamInitialization = Socks5PacketUtils.createBytestreamInitiation(
                    initiatorJID, targetJID, sessionID);
    bytestreamInitialization.addStreamHost(proxyJID, proxyAddress, 7779);
    bytestreamInitialization.addStreamHost(proxyJID, proxyAddress, 7778);

    // create test data for stream
    byte[] data = new byte[] { 1, 2, 3 };

    // get SOCKS5 Bytestream manager for connection
    Socks5BytestreamManager byteStreamManager = Socks5BytestreamManager.getBytestreamManager(connection);

    // build SOCKS5 Bytestream request with the bytestream initialization
    Socks5BytestreamRequest byteStreamRequest = new Socks5BytestreamRequest(byteStreamManager,
                    bytestreamInitialization);

    // set timeouts
    byteStreamRequest.setTotalConnectTimeout(2000);
    byteStreamRequest.setMinimumConnectTimeout(1000);

    // accept the stream (this is the call that is tested here)
    InputStream inputStream = byteStreamRequest.accept().getInputStream();

    // assert that client tries to connect to dumb SOCKS5 proxy
    Socket socket = serverSocket.accept();
    assertNotNull(socket);

    // create digest to get the socket opened by target
    String digest = Socks5Utils.createDigest(sessionID, initiatorJID, targetJID);

    // test stream by sending some data
    OutputStream outputStream = socks5Proxy.getSocket(digest).getOutputStream();
    outputStream.write(data);

    // verify that data is transferred correctly
    byte[] result = new byte[3];
    inputStream.read(result);
    assertArrayEquals(data, result);

    // verify targets response
    assertEquals(1, protocol.getRequests().size());
    Stanza targetResponse = protocol.getRequests().remove(0);
    assertEquals(Bytestream.class, targetResponse.getClass());
    assertEquals(initiatorJID, targetResponse.getTo());
    assertEquals(IQ.Type.result, ((Bytestream) targetResponse).getType());
    assertEquals(proxyJID, ((Bytestream) targetResponse).getUsedHost().getJID());

    serverSocket.close();

}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:67,代码来源:Socks5ByteStreamRequestTest.java

示例10: shouldAcceptSocks5BytestreamRequestAndReceiveData

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
/**
 * Accepting the SOCKS5 Bytestream request should be successfully.
 * 
 * @throws Exception should not happen
 */
@Test
public void shouldAcceptSocks5BytestreamRequestAndReceiveData() throws Exception {

    // start a local SOCKS5 proxy
    Socks5TestProxy socks5Proxy = Socks5TestProxy.getProxy(7778);

    // build SOCKS5 Bytestream initialization request
    Bytestream bytestreamInitialization = Socks5PacketUtils.createBytestreamInitiation(
                    initiatorJID, targetJID, sessionID);
    bytestreamInitialization.addStreamHost(proxyJID, proxyAddress, 7778);

    // create test data for stream
    byte[] data = new byte[] { 1, 2, 3 };

    // get SOCKS5 Bytestream manager for connection
    Socks5BytestreamManager byteStreamManager = Socks5BytestreamManager.getBytestreamManager(connection);

    // build SOCKS5 Bytestream request with the bytestream initialization
    Socks5BytestreamRequest byteStreamRequest = new Socks5BytestreamRequest(byteStreamManager,
                    bytestreamInitialization);

    // accept the stream (this is the call that is tested here)
    InputStream inputStream = byteStreamRequest.accept().getInputStream();

    // create digest to get the socket opened by target
    String digest = Socks5Utils.createDigest(sessionID, initiatorJID, targetJID);

    // test stream by sending some data
    OutputStream outputStream = socks5Proxy.getSocket(digest).getOutputStream();
    outputStream.write(data);

    // verify that data is transferred correctly
    byte[] result = new byte[3];
    inputStream.read(result);
    assertArrayEquals(data, result);

    // verify targets response
    assertEquals(1, protocol.getRequests().size());
    Stanza targetResponse = protocol.getRequests().remove(0);
    assertEquals(Bytestream.class, targetResponse.getClass());
    assertEquals(initiatorJID, targetResponse.getTo());
    assertEquals(IQ.Type.result, ((Bytestream) targetResponse).getType());
    assertEquals(proxyJID, ((Bytestream) targetResponse).getUsedHost().getJID());

}
 
开发者ID:TTalkIM,项目名称:Smack,代码行数:51,代码来源:Socks5ByteStreamRequestTest.java

示例11: parseIQ

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
public IQ parseIQ(XmlPullParser parser) throws Exception {
    boolean done = false;

    Bytestream toReturn = new Bytestream();

    String id = parser.getAttributeValue("", "sid");
    String mode = parser.getAttributeValue("", "mode");

    // streamhost
    String JID = null;
    String host = null;
    String port = null;

    int eventType;
    String elementName;
    while (!done) {
        eventType = parser.next();
        elementName = parser.getName();
        if (eventType == XmlPullParser.START_TAG) {
            if (elementName.equals(Bytestream.StreamHost.ELEMENTNAME)) {
                JID = parser.getAttributeValue("", "jid");
                host = parser.getAttributeValue("", "host");
                port = parser.getAttributeValue("", "port");
            }
            else if (elementName.equals(Bytestream.StreamHostUsed.ELEMENTNAME)) {
                toReturn.setUsedHost(parser.getAttributeValue("", "jid"));
            }
            else if (elementName.equals(Bytestream.Activate.ELEMENTNAME)) {
                toReturn.setToActivate(parser.getAttributeValue("", "jid"));
            }
        }
        else if (eventType == XmlPullParser.END_TAG) {
            if (elementName.equals("streamhost")) {
                if (port == null) {
                    toReturn.addStreamHost(JID, host);
                }
                else {
                    toReturn.addStreamHost(JID, host, Integer.parseInt(port));
                }
                JID = null;
                host = null;
                port = null;
            }
            else if (elementName.equals("query")) {
                done = true;
            }
        }
    }

    toReturn.setMode((Bytestream.Mode.fromName(mode)));
    toReturn.setSessionID(id);
    return toReturn;
}
 
开发者ID:ice-coffee,项目名称:EIM,代码行数:54,代码来源:BytestreamsProvider.java

示例12: parseIQ

import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; //导入方法依赖的package包/类
public IQ parseIQ(XmlPullParser parser) throws Exception {
	boolean done = false;

	Bytestream toReturn = new Bytestream();

	String id = parser.getAttributeValue("", "sid");
	String mode = parser.getAttributeValue("", "mode");

	// streamhost
	String JID = null;
	String host = null;
	String port = null;

	int eventType;
	String elementName;
	while (!done) {
		eventType = parser.next();
		elementName = parser.getName();
		if (eventType == XmlPullParser.START_TAG) {
			if (elementName.equals(Bytestream.StreamHost.ELEMENTNAME)) {
				JID = parser.getAttributeValue("", "jid");
				host = parser.getAttributeValue("", "host");
				port = parser.getAttributeValue("", "port");
			} else if (elementName
					.equals(Bytestream.StreamHostUsed.ELEMENTNAME)) {
				toReturn.setUsedHost(parser.getAttributeValue("", "jid"));
			} else if (elementName.equals(Bytestream.Activate.ELEMENTNAME)) {
				toReturn.setToActivate(parser.getAttributeValue("", "jid"));
			}
		} else if (eventType == XmlPullParser.END_TAG) {
			if (elementName.equals("streamhost")) {
				if (port == null) {
					toReturn.addStreamHost(JID, host);
				} else {
					toReturn.addStreamHost(JID, host,
							Integer.parseInt(port));
				}
				JID = null;
				host = null;
				port = null;
			} else if (elementName.equals("query")) {
				done = true;
			}
		}
	}

	toReturn.setMode((Bytestream.Mode.fromName(mode)));
	toReturn.setSessionID(id);
	return toReturn;
}
 
开发者ID:ikantech,项目名称:xmppsupport_v2,代码行数:51,代码来源:BytestreamsProvider.java


注:本文中的org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.addStreamHost方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。