我试图实现一个tcp客户端,它将使用spring Integration连接到现有的服务器。对于这项技术还是新手,我已经在https://github.com/spring-projects/spring-integration-samples上学习了spring示例。
<int-ip:tcp-connection-factory id="client"
type="client"
host="localhost"
port="12345"
single-use="false"
so-timeout="10000"
deserializer="javaSerializerDeserializer"
serializer="javaSerializerDeserializer" />
<bean id="javaSerializerDeserializer"
class="org.springframework.integration.ip.tcp.serializer.ByteArrayLfSerializer" />
<int-ip:tcp-outbound-gateway id="outGateway"
request-channel="input"
reply-channel="clientBytes2StringChannel"
connection-factory="client"
request-timeout="10000"
reply-timeout="10000" />
<int:object-to-string-transformer id="clientBytes2String"
input-channel="clientBytes2StringChannel" />
<int:service-activator input-channel="clientBytes2StringChannel" ref="thinclientService" />
<bean id="thinclientService" class="tcp.service.ThinClientService" />
@Component
public class ThinClientService {
private static final Logger LOGGER = LoggerFactory.getLogger(ThinClientService.class);
public String receive(String recv) {
LOGGER.info("*****************Recv: {}", recv);
return "echo";
}
}
主要方法:
@SpringBootApplication
public class Application {
public static void main(String args[]) throws Exception {
GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.load("classpath:META-INF/beans.xml");
context.registerShutdownHook();
context.refresh();
System.out.println("Running test");
SpringApplication.run(Application.class, args);
}
}
如何强制此客户端连接到我的服务器,即使我不想发送数据?
我自己想办法弄明白了。我必须用client-mode=“true”将tcp-outbound-gateway更改为tcp-inbound-gateway。只有到那时,服务激活器才会接收从服务器发送的消息。
更新bean配置:
<int-ip:tcp-connection-factory id="client"
type="client"
host="localhost"
port="12345" single-use="false" so-timeout="10000" deserializer="javaSerializerDeserializer"
serializer="javaSerializerDeserializer" />
<bean id="javaSerializerDeserializer"
class="org.springframework.integration.ip.tcp.serializer.ByteArrayLfSerializer" />
<int-ip:tcp-inbound-gateway id="outGateway"
request-channel="input"
connection-factory="client"
client-mode="true"
retry-interval="1000"
scheduler="reconnectScheduler" />
<bean id="reconnectScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler" />
<int:object-to-string-transformer id="clientBytes2String"
input-channel="input" output-channel="responseString" />
<int:service-activator input-channel="responseString" ref="thinclientService" />
<bean id="thinclientService" class="tcp.service.ThinClientService" />
我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s
问题内容: 我正在尝试从服务器向客户端发送文件,即服务器请求的客户端。客户端指定中的文件,然后将其发送到服务器,服务器将文件大小添加到文件中,然后将其返回给客户端。 客户端向其管道添加具有正确文件大小的新文件。 服务器使用上下文和所需文件创建一个新文件,并尝试发送该文件,但是从不读取该字节。 我在这里做错了什么? 记录 客户 FileRequestHandler.java FileChunkReq
问题内容: 我正在尝试找到一种方法,将不同文件类型的文件从服务器发送到客户端。 我在服务器上有以下代码将文件放入字节数组: 然后,我将fileData作为字符串发送给客户端。这对于txt文件效果很好,但是当涉及到图像时,我发现尽管它可以很好地创建包含数据的文件,但图像无法打开。 我不确定我是否正在按照正确的方式进行操作。谢谢您的帮助。 问题答案: 如果要读取/写入二进制数据,则应使用字节流(Inp
我被夹在中间。我想实现一个POST方法,使用HttpUrlConnection向服务器发送注册用户的电子邮件、名称和密码。以下是我的代码: 我不知道我在哪里犯了错误。我收到以下回复 空格后的“0”是超文本传输协议响应代码返回的响应代码。当我在浏览器中尝试时,我的网址是正确的。我不知道我在哪里犯了错误;是我的服务器故障还是我的代码有错误,因为我不认为我的代码有任何交互处理。 我是Android开发的
问题内容: 我正在尝试通过一个请求将数据从一个node.js服务器发送到另一个node.js服务器。我在“客户端” node.js中执行的操作如下: 该块或多或少是从node.js网站获取的,因此应该正确。我唯一看不到的是如何在变量中包括用户名和密码以进行实际登录。这是我处理服务器node.js中的数据的方式(我使用express): 如何将这些和字段添加到变量中以使其登录? 谢谢 问题答案: 发
问题内容: 由于我是Web服务的新手,请您告诉我问题的答案。我的问题是 我想实现一个Web服务,当客户端调用此Web服务时,该服务会向客户端发送pdf文件。 请有人帮我提供一段不错的代码或解释。 现在可以请一个人解决我的错误。 12-23 09:42:48.429:调试/安装(32):DexInv:-开始’/data/app/vmdl33143.tmp’— 12-23 09:42:51.708:调