我有一个调用服务器的Java套接字。但是,我不知道我可以在哪个地址访问服务器,因此我在多个线程中放置了几个套接字,它们尝试在一个地址上分别访问服务器。我的探究是我不想等待超时,但不知道如何正确停止套接字及其线程。
码:
socket = new Socket();
socket.connect(endpoint, timeout); // **Blocking method**
OutputStream out = socket.getOutputStream();
//Write Data here
Run Code Online (Sandbox Code Playgroud)
如何中断操作?我认为Thread.stop()样式不好,而且也无法正常工作。.NET Tcp端点具有一种非阻塞pending方法,该方法允许uinsg布尔标志,但是我找不到类似的东西
我有一个 xml lists.xml:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<list>
<item>Salt</item>
<item>Sugar</item>
</list>
<list>
<item>Eggs</item>
<item>Butter</item>
</list>
</data>
Run Code Online (Sandbox Code Playgroud)
和一个 XSLT 样式表 transform.xslt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:output method="text"/>
<xsl:template match="//list/item">
<xsl:text> - </xsl:text>
<xsl:value-of select="." />
<xsl:text>
</xsl:text><!--put a line-break between two list points--->
<xsl:if test="position() = last()"><!--put another line-break at the end of a list-->
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我的预期输出类似于以下内容:
- Salt
- Sugar
- Eggs
- Butter
Run Code Online (Sandbox Code Playgroud)
但相反,当使用撒克逊(或其他处理器)进行转换时,我通过大量输出获得了上述内容。那么如何在 XSLT 中正确处理空白呢?
注意:我对 XSLT 完全陌生,我知道我上面发布的代码可能很糟糕——所以,除了问题之外,我感谢任何建议,使其更优雅/更好地阅读/更快/更短......